EdisonAPI-1.3: A library of efficent, purely-functional data structures (API)

CopyrightCopyright (c) 2006 Robert Dockins
LicenseMIT; see COPYRIGHT file for terms and conditions
Maintainerrobdockins AT fastmail DOT fm
Stabilitystable
PortabilityGHC, Hugs (MPTC and FD)
Safe HaskellSafe
LanguageHaskell2010

Data.Edison.Sym

Description

This module introduces a number of infix symbols which are aliases for some of the operations in the sequence and set abstractions. For several, the argument orders are reversed to more closely match usual symbolic usage.

The symbols are intended to evoke the the operations they represent. Unfortunately, ASCII is pretty limited, and Haskell 98 only allocates a few symbols to the operator lexical class. Thus, some of the operators are less evocative than one would like. A future version of Edison may introduce unicode operators, which will allow a wider range of operations to be represented symbolicly.

Unlike most of the modules in Edison, this module is intended to be imported unqualified. However, the definition of (++) will conflict with the Prelude definition. Either this definition or the Prelude definition will need to be imported hiding ( (++) ). This definition subsumes the Prelude definition, and can be safely used in place of it.

Synopsis

Documentation

(<|) :: Sequence seq => a -> seq a -> seq a Source

Left (front) cons on a sequence. The new element appears on the left. Identical to lcons.

(|>) :: Sequence seq => seq a -> a -> seq a Source

Right (rear) cons on a sequence. The new element appears on the right. Identical to rcons with reversed arguments.

(++) :: Sequence seq => seq a -> seq a -> seq a Source

Append two sequences. Identical to append. Subsumes the Prelude definition.

(!) :: Sequence seq => seq a -> Int -> a Source

Lookup an element in a sequence. Identical to lookup with reversed arguments.

(|=) :: SetX set a => set -> set -> Bool Source

Subset test operation. Identical to subset.

(\\) :: SetX set a => set -> set -> set Source

Set difference. Identical to difference.

(/\) :: SetX set a => set -> set -> set Source

Set intersection. Identical to intersection.

(\/) :: SetX set a => set -> set -> set Source

Set union. Identical to union.