definitive-base-2.6.3: A small Prelude wrapper to simplify my own Haskell developments

Safe HaskellNone
LanguageHaskell2010

Algebra.Core

Contents

Synopsis

Raw data

data Handle :: * #

Haskell defines operations to read and write characters from and to files, represented by values of type Handle. Each value of this type is a handle: a record used by the Haskell run-time system to manage I/O with file system objects. A handle has at least the following properties:

  • whether it manages input or output or both;
  • whether it is open, closed or semi-closed;
  • whether the object is seekable;
  • whether buffering is disabled, or enabled on a line or block basis;
  • a buffer (whose length may be zero).

Most handles will also have a current I/O position indicating where the next input or output operation will occur. A handle is readable if it manages only input or both input and output; likewise, it is writable if it manages only output or both input and output. A handle is open when first allocated. Once it is closed it can no longer be used for either input or output, though an implementation cannot re-use its storage while references remain to it. Handles are in the Show and Eq classes. The string produced by showing a handle is system dependent; it should include enough information to identify the handle for debugging. A handle is equal according to == only to itself; no attempt is made to compare the internal state of different handles for equality.

Instances

Eq Handle 

Methods

(==) :: Handle -> Handle -> Bool #

(/=) :: Handle -> Handle -> Bool #

Show Handle 

stdin :: Handle #

A handle managing input from the Haskell program's standard input channel.

stdout :: Handle #

A handle managing output to the Haskell program's standard output channel.

stderr :: Handle #

A handle managing output to the Haskell program's standard error channel.

class Packed c where Source #

Minimal complete definition

pack, unpack

Methods

pack :: [Word8] -> c Source #

unpack :: c -> [Word8] Source #

Instances

Basic union and product types

data Void Source #

Instances

Show Void Source # 

Methods

showsPrec :: Int -> Void -> ShowS #

show :: Void -> String #

showList :: [Void] -> ShowS #

Monoid Void Source # 

Methods

zero :: Void Source #

Semigroup Void Source # 

Methods

(+) :: Void -> Void -> Void Source #

Monoid a => SubSemi a Void Source # 

Methods

cast :: Void -> a Source #

Isomorphic Bool Bool (Maybe a) (Maybe Void) Source # 

Methods

i'_ :: Iso (Maybe Void) (Maybe a) Bool Bool Source #

Isomorphic a b (Void, a) (Void, b) Source # 

Methods

i'_ :: Iso (Void, b) (Void, a) b a Source #

Monad m => MonadError Void (ListT m) Source # 

Methods

throw :: Void -> ListT m a Source #

catch :: (Void -> ListT m a) -> ListT m a -> ListT m a Source #

Monad m => MonadError Void (LogicT m) Source # 

Methods

throw :: Void -> LogicT m a Source #

catch :: (Void -> LogicT m a) -> LogicT m a -> LogicT m a Source #

Ord a => OrderedMap (Set a) a Void Source # 

Methods

ascList :: Iso' (Set a) [(a, Void)] Source #

nearest :: (Bool, Ordering) -> a -> Set a -> Maybe (a, Void) Source #

Ord a => DataMap (Set a) a Void Source # 

Methods

at :: a -> Lens' (Set a) (Maybe Void) Source #

Traversable m => Traversable (RWST Void w Void m) Source # 

Methods

sequence :: Applicative f => RWST Void w Void m (f a) -> f (RWST Void w Void m a) Source #

Foldable m => Foldable (RWST Void w Void m) Source # 

Methods

fold :: Monoid m => RWST Void w Void m m -> m Source #

type (:*:) a b = (a, b) Source #

type (:+:) a b = Either a b Source #

data Union3 a b c Source #

Constructors

U3_1 a 
U3_2 b 
U3_3 c 

Instances

Trav3 x y (Union3 a b x) (Union3 a b y) Source # 

Methods

t'3 :: Traversal x y (Union3 a b x) (Union3 a b y) Source #

Trav2 x y (Union3 a x b) (Union3 a y b) Source # 

Methods

t'2 :: Traversal x y (Union3 a x b) (Union3 a y b) Source #

Trav1 x y (Union3 x a b) (Union3 y a b) Source # 

Methods

t'1 :: Traversal x y (Union3 x a b) (Union3 y a b) Source #

(Eq c, Eq b, Eq a) => Eq (Union3 a b c) Source # 

Methods

(==) :: Union3 a b c -> Union3 a b c -> Bool #

(/=) :: Union3 a b c -> Union3 a b c -> Bool #

(Ord c, Ord b, Ord a) => Ord (Union3 a b c) Source # 

Methods

compare :: Union3 a b c -> Union3 a b c -> Ordering #

(<) :: Union3 a b c -> Union3 a b c -> Bool #

(<=) :: Union3 a b c -> Union3 a b c -> Bool #

(>) :: Union3 a b c -> Union3 a b c -> Bool #

(>=) :: Union3 a b c -> Union3 a b c -> Bool #

max :: Union3 a b c -> Union3 a b c -> Union3 a b c #

min :: Union3 a b c -> Union3 a b c -> Union3 a b c #

(Read c, Read b, Read a) => Read (Union3 a b c) Source # 

Methods

readsPrec :: Int -> ReadS (Union3 a b c) #

readList :: ReadS [Union3 a b c] #

readPrec :: ReadPrec (Union3 a b c) #

readListPrec :: ReadPrec [Union3 a b c] #

(Show c, Show b, Show a) => Show (Union3 a b c) Source # 

Methods

showsPrec :: Int -> Union3 a b c -> ShowS #

show :: Union3 a b c -> String #

showList :: [Union3 a b c] -> ShowS #

data Union4 a b c d Source #

Constructors

U4_1 a 
U4_2 b 
U4_3 c 
U4_4 d 

Instances

Trav4 x y (Union4 a b c x) (Union4 a b c y) Source # 

Methods

t'4 :: Traversal x y (Union4 a b c x) (Union4 a b c y) Source #

Trav3 x y (Union4 a b x c) (Union4 a b y c) Source # 

Methods

t'3 :: Traversal x y (Union4 a b x c) (Union4 a b y c) Source #

Trav2 x y (Union4 a x b c) (Union4 a y b c) Source # 

Methods

t'2 :: Traversal x y (Union4 a x b c) (Union4 a y b c) Source #

Trav1 x y (Union4 x a b c) (Union4 y a b c) Source # 

Methods

t'1 :: Traversal x y (Union4 x a b c) (Union4 y a b c) Source #

(Eq d, Eq c, Eq b, Eq a) => Eq (Union4 a b c d) Source # 

Methods

(==) :: Union4 a b c d -> Union4 a b c d -> Bool #

(/=) :: Union4 a b c d -> Union4 a b c d -> Bool #

(Ord d, Ord c, Ord b, Ord a) => Ord (Union4 a b c d) Source # 

Methods

compare :: Union4 a b c d -> Union4 a b c d -> Ordering #

(<) :: Union4 a b c d -> Union4 a b c d -> Bool #

(<=) :: Union4 a b c d -> Union4 a b c d -> Bool #

(>) :: Union4 a b c d -> Union4 a b c d -> Bool #

(>=) :: Union4 a b c d -> Union4 a b c d -> Bool #

max :: Union4 a b c d -> Union4 a b c d -> Union4 a b c d #

min :: Union4 a b c d -> Union4 a b c d -> Union4 a b c d #

(Read d, Read c, Read b, Read a) => Read (Union4 a b c d) Source # 

Methods

readsPrec :: Int -> ReadS (Union4 a b c d) #

readList :: ReadS [Union4 a b c d] #

readPrec :: ReadPrec (Union4 a b c d) #

readListPrec :: ReadPrec [Union4 a b c d] #

(Show d, Show c, Show b, Show a) => Show (Union4 a b c d) Source # 

Methods

showsPrec :: Int -> Union4 a b c d -> ShowS #

show :: Union4 a b c d -> String #

showList :: [Union4 a b c d] -> ShowS #

data Union5 a b c d e Source #

Constructors

U5_1 a 
U5_2 b 
U5_3 c 
U5_4 d 
U5_5 e 

Instances

Trav5 x y (Union5 a b c d x) (Union5 a b c d y) Source # 

Methods

t'5 :: Traversal x y (Union5 a b c d x) (Union5 a b c d y) Source #

Trav4 x y (Union5 a b c x d) (Union5 a b c y d) Source # 

Methods

t'4 :: Traversal x y (Union5 a b c x d) (Union5 a b c y d) Source #

Trav3 x y (Union5 a b x c d) (Union5 a b y c d) Source # 

Methods

t'3 :: Traversal x y (Union5 a b x c d) (Union5 a b y c d) Source #

Trav2 x y (Union5 a x b c d) (Union5 a y b c d) Source # 

Methods

t'2 :: Traversal x y (Union5 a x b c d) (Union5 a y b c d) Source #

Trav1 x y (Union5 x a b c d) (Union5 y a b c d) Source # 

Methods

t'1 :: Traversal x y (Union5 x a b c d) (Union5 y a b c d) Source #

(Eq e, Eq d, Eq c, Eq b, Eq a) => Eq (Union5 a b c d e) Source # 

Methods

(==) :: Union5 a b c d e -> Union5 a b c d e -> Bool #

(/=) :: Union5 a b c d e -> Union5 a b c d e -> Bool #

(Ord e, Ord d, Ord c, Ord b, Ord a) => Ord (Union5 a b c d e) Source # 

Methods

compare :: Union5 a b c d e -> Union5 a b c d e -> Ordering #

(<) :: Union5 a b c d e -> Union5 a b c d e -> Bool #

(<=) :: Union5 a b c d e -> Union5 a b c d e -> Bool #

(>) :: Union5 a b c d e -> Union5 a b c d e -> Bool #

(>=) :: Union5 a b c d e -> Union5 a b c d e -> Bool #

max :: Union5 a b c d e -> Union5 a b c d e -> Union5 a b c d e #

min :: Union5 a b c d e -> Union5 a b c d e -> Union5 a b c d e #

(Read e, Read d, Read c, Read b, Read a) => Read (Union5 a b c d e) Source # 

Methods

readsPrec :: Int -> ReadS (Union5 a b c d e) #

readList :: ReadS [Union5 a b c d e] #

readPrec :: ReadPrec (Union5 a b c d e) #

readListPrec :: ReadPrec [Union5 a b c d e] #

(Show e, Show d, Show c, Show b, Show a) => Show (Union5 a b c d e) Source # 

Methods

showsPrec :: Int -> Union5 a b c d e -> ShowS #

show :: Union5 a b c d e -> String #

showList :: [Union5 a b c d e] -> ShowS #

data Union6 a b c d e f Source #

Constructors

U6_1 a 
U6_2 b 
U6_3 c 
U6_4 d 
U6_5 e 
U6_6 f 

Instances

Trav6 x y (Union6 a b c d e x) (Union6 a b c d e y) Source # 

Methods

t'6 :: Traversal x y (Union6 a b c d e x) (Union6 a b c d e y) Source #

Trav5 x y (Union6 a b c d x e) (Union6 a b c d y e) Source # 

Methods

t'5 :: Traversal x y (Union6 a b c d x e) (Union6 a b c d y e) Source #

Trav4 x y (Union6 a b c x d e) (Union6 a b c y d e) Source # 

Methods

t'4 :: Traversal x y (Union6 a b c x d e) (Union6 a b c y d e) Source #

Trav3 x y (Union6 a b x c d e) (Union6 a b y c d e) Source # 

Methods

t'3 :: Traversal x y (Union6 a b x c d e) (Union6 a b y c d e) Source #

Trav2 x y (Union6 a x b c d e) (Union6 a y b c d e) Source # 

Methods

t'2 :: Traversal x y (Union6 a x b c d e) (Union6 a y b c d e) Source #

Trav1 x y (Union6 x a b c d e) (Union6 y a b c d e) Source # 

Methods

t'1 :: Traversal x y (Union6 x a b c d e) (Union6 y a b c d e) Source #

(Eq f, Eq e, Eq d, Eq c, Eq b, Eq a) => Eq (Union6 a b c d e f) Source # 

Methods

(==) :: Union6 a b c d e f -> Union6 a b c d e f -> Bool #

(/=) :: Union6 a b c d e f -> Union6 a b c d e f -> Bool #

(Ord f, Ord e, Ord d, Ord c, Ord b, Ord a) => Ord (Union6 a b c d e f) Source # 

Methods

compare :: Union6 a b c d e f -> Union6 a b c d e f -> Ordering #

(<) :: Union6 a b c d e f -> Union6 a b c d e f -> Bool #

(<=) :: Union6 a b c d e f -> Union6 a b c d e f -> Bool #

(>) :: Union6 a b c d e f -> Union6 a b c d e f -> Bool #

(>=) :: Union6 a b c d e f -> Union6 a b c d e f -> Bool #

max :: Union6 a b c d e f -> Union6 a b c d e f -> Union6 a b c d e f #

min :: Union6 a b c d e f -> Union6 a b c d e f -> Union6 a b c d e f #

(Read f, Read e, Read d, Read c, Read b, Read a) => Read (Union6 a b c d e f) Source # 

Methods

readsPrec :: Int -> ReadS (Union6 a b c d e f) #

readList :: ReadS [Union6 a b c d e f] #

readPrec :: ReadPrec (Union6 a b c d e f) #

readListPrec :: ReadPrec [Union6 a b c d e f] #

(Show f, Show e, Show d, Show c, Show b, Show a) => Show (Union6 a b c d e f) Source # 

Methods

showsPrec :: Int -> Union6 a b c d e f -> ShowS #

show :: Union6 a b c d e f -> String #

showList :: [Union6 a b c d e f] -> ShowS #

data Union7 a b c d e f g Source #

Constructors

U7_1 a 
U7_2 b 
U7_3 c 
U7_4 d 
U7_5 e 
U7_6 f 
U7_7 g 

Instances

Trav7 x y (Union7 a b c d e f x) (Union7 a b c d e f y) Source # 

Methods

t'7 :: Traversal x y (Union7 a b c d e f x) (Union7 a b c d e f y) Source #

Trav6 x y (Union7 a b c d e x f) (Union7 a b c d e y f) Source # 

Methods

t'6 :: Traversal x y (Union7 a b c d e x f) (Union7 a b c d e y f) Source #

Trav5 x y (Union7 a b c d x e f) (Union7 a b c d y e f) Source # 

Methods

t'5 :: Traversal x y (Union7 a b c d x e f) (Union7 a b c d y e f) Source #

Trav4 x y (Union7 a b c x d e f) (Union7 a b c y d e f) Source # 

Methods

t'4 :: Traversal x y (Union7 a b c x d e f) (Union7 a b c y d e f) Source #

Trav3 x y (Union7 a b x c d e f) (Union7 a b y c d e f) Source # 

Methods

t'3 :: Traversal x y (Union7 a b x c d e f) (Union7 a b y c d e f) Source #

Trav2 x y (Union7 a x b c d e f) (Union7 a y b c d e f) Source # 

Methods

t'2 :: Traversal x y (Union7 a x b c d e f) (Union7 a y b c d e f) Source #

Trav1 x y (Union7 x a b c d e f) (Union7 y a b c d e f) Source # 

Methods

t'1 :: Traversal x y (Union7 x a b c d e f) (Union7 y a b c d e f) Source #

(Eq g, Eq f, Eq e, Eq d, Eq c, Eq b, Eq a) => Eq (Union7 a b c d e f g) Source # 

Methods

(==) :: Union7 a b c d e f g -> Union7 a b c d e f g -> Bool #

(/=) :: Union7 a b c d e f g -> Union7 a b c d e f g -> Bool #

(Ord g, Ord f, Ord e, Ord d, Ord c, Ord b, Ord a) => Ord (Union7 a b c d e f g) Source # 

Methods

compare :: Union7 a b c d e f g -> Union7 a b c d e f g -> Ordering #

(<) :: Union7 a b c d e f g -> Union7 a b c d e f g -> Bool #

(<=) :: Union7 a b c d e f g -> Union7 a b c d e f g -> Bool #

(>) :: Union7 a b c d e f g -> Union7 a b c d e f g -> Bool #

(>=) :: Union7 a b c d e f g -> Union7 a b c d e f g -> Bool #

max :: Union7 a b c d e f g -> Union7 a b c d e f g -> Union7 a b c d e f g #

min :: Union7 a b c d e f g -> Union7 a b c d e f g -> Union7 a b c d e f g #

(Read g, Read f, Read e, Read d, Read c, Read b, Read a) => Read (Union7 a b c d e f g) Source # 

Methods

readsPrec :: Int -> ReadS (Union7 a b c d e f g) #

readList :: ReadS [Union7 a b c d e f g] #

readPrec :: ReadPrec (Union7 a b c d e f g) #

readListPrec :: ReadPrec [Union7 a b c d e f g] #

(Show g, Show f, Show e, Show d, Show c, Show b, Show a) => Show (Union7 a b c d e f g) Source # 

Methods

showsPrec :: Int -> Union7 a b c d e f g -> ShowS #

show :: Union7 a b c d e f g -> String #

showList :: [Union7 a b c d e f g] -> ShowS #

data Union8 a b c d e f g h Source #

Constructors

U8_1 a 
U8_2 b 
U8_3 c 
U8_4 d 
U8_5 e 
U8_6 f 
U8_7 g 
U8_8 h 

Instances

Trav8 x y (Union8 a b c d e f g x) (Union8 a b c d e f g y) Source # 

Methods

t'8 :: Traversal x y (Union8 a b c d e f g x) (Union8 a b c d e f g y) Source #

Trav7 x y (Union8 a b c d e f x g) (Union8 a b c d e f y g) Source # 

Methods

t'7 :: Traversal x y (Union8 a b c d e f x g) (Union8 a b c d e f y g) Source #

Trav6 x y (Union8 a b c d e x f g) (Union8 a b c d e y f g) Source # 

Methods

t'6 :: Traversal x y (Union8 a b c d e x f g) (Union8 a b c d e y f g) Source #

Trav5 x y (Union8 a b c d x e f g) (Union8 a b c d y e f g) Source # 

Methods

t'5 :: Traversal x y (Union8 a b c d x e f g) (Union8 a b c d y e f g) Source #

Trav4 x y (Union8 a b c x d e f g) (Union8 a b c y d e f g) Source # 

Methods

t'4 :: Traversal x y (Union8 a b c x d e f g) (Union8 a b c y d e f g) Source #

Trav3 x y (Union8 a b x c d e f g) (Union8 a b y c d e f g) Source # 

Methods

t'3 :: Traversal x y (Union8 a b x c d e f g) (Union8 a b y c d e f g) Source #

Trav2 x y (Union8 a x b c d e f g) (Union8 a y b c d e f g) Source # 

Methods

t'2 :: Traversal x y (Union8 a x b c d e f g) (Union8 a y b c d e f g) Source #

Trav1 x y (Union8 x a b c d e f g) (Union8 y a b c d e f g) Source # 

Methods

t'1 :: Traversal x y (Union8 x a b c d e f g) (Union8 y a b c d e f g) Source #

(Eq h, Eq g, Eq f, Eq e, Eq d, Eq c, Eq b, Eq a) => Eq (Union8 a b c d e f g h) Source # 

Methods

(==) :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Bool #

(/=) :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Bool #

(Ord h, Ord g, Ord f, Ord e, Ord d, Ord c, Ord b, Ord a) => Ord (Union8 a b c d e f g h) Source # 

Methods

compare :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Ordering #

(<) :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Bool #

(<=) :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Bool #

(>) :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Bool #

(>=) :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Bool #

max :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Union8 a b c d e f g h #

min :: Union8 a b c d e f g h -> Union8 a b c d e f g h -> Union8 a b c d e f g h #

(Read h, Read g, Read f, Read e, Read d, Read c, Read b, Read a) => Read (Union8 a b c d e f g h) Source # 

Methods

readsPrec :: Int -> ReadS (Union8 a b c d e f g h) #

readList :: ReadS [Union8 a b c d e f g h] #

readPrec :: ReadPrec (Union8 a b c d e f g h) #

readListPrec :: ReadPrec [Union8 a b c d e f g h] #

(Show h, Show g, Show f, Show e, Show d, Show c, Show b, Show a) => Show (Union8 a b c d e f g h) Source # 

Methods

showsPrec :: Int -> Union8 a b c d e f g h -> ShowS #

show :: Union8 a b c d e f g h -> String #

showList :: [Union8 a b c d e f g h] -> ShowS #

data Union9 a b c d e f g h i Source #

Constructors

U9_1 a 
U9_2 b 
U9_3 c 
U9_4 d 
U9_5 e 
U9_6 f 
U9_7 g 
U9_8 h 
U9_9 i 

Instances

Trav9 x y (Union9 a b c d e f g h x) (Union9 a b c d e f g h y) Source # 

Methods

t'9 :: Traversal x y (Union9 a b c d e f g h x) (Union9 a b c d e f g h y) Source #

Trav8 x y (Union9 a b c d e f g x h) (Union9 a b c d e f g y h) Source # 

Methods

t'8 :: Traversal x y (Union9 a b c d e f g x h) (Union9 a b c d e f g y h) Source #

Trav7 x y (Union9 a b c d e f x g h) (Union9 a b c d e f y g h) Source # 

Methods

t'7 :: Traversal x y (Union9 a b c d e f x g h) (Union9 a b c d e f y g h) Source #

Trav6 x y (Union9 a b c d e x f g h) (Union9 a b c d e y f g h) Source # 

Methods

t'6 :: Traversal x y (Union9 a b c d e x f g h) (Union9 a b c d e y f g h) Source #

Trav5 x y (Union9 a b c d x e f g h) (Union9 a b c d y e f g h) Source # 

Methods

t'5 :: Traversal x y (Union9 a b c d x e f g h) (Union9 a b c d y e f g h) Source #

Trav4 x y (Union9 a b c x d e f g h) (Union9 a b c y d e f g h) Source # 

Methods

t'4 :: Traversal x y (Union9 a b c x d e f g h) (Union9 a b c y d e f g h) Source #

Trav3 x y (Union9 a b x c d e f g h) (Union9 a b y c d e f g h) Source # 

Methods

t'3 :: Traversal x y (Union9 a b x c d e f g h) (Union9 a b y c d e f g h) Source #

Trav2 x y (Union9 a x b c d e f g h) (Union9 a y b c d e f g h) Source # 

Methods

t'2 :: Traversal x y (Union9 a x b c d e f g h) (Union9 a y b c d e f g h) Source #

Trav1 x y (Union9 x a b c d e f g h) (Union9 y a b c d e f g h) Source # 

Methods

t'1 :: Traversal x y (Union9 x a b c d e f g h) (Union9 y a b c d e f g h) Source #

(Eq i, Eq h, Eq g, Eq f, Eq e, Eq d, Eq c, Eq b, Eq a) => Eq (Union9 a b c d e f g h i) Source # 

Methods

(==) :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Bool #

(/=) :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Bool #

(Ord i, Ord h, Ord g, Ord f, Ord e, Ord d, Ord c, Ord b, Ord a) => Ord (Union9 a b c d e f g h i) Source # 

Methods

compare :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Ordering #

(<) :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Bool #

(<=) :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Bool #

(>) :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Bool #

(>=) :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Bool #

max :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Union9 a b c d e f g h i #

min :: Union9 a b c d e f g h i -> Union9 a b c d e f g h i -> Union9 a b c d e f g h i #

(Read i, Read h, Read g, Read f, Read e, Read d, Read c, Read b, Read a) => Read (Union9 a b c d e f g h i) Source # 

Methods

readsPrec :: Int -> ReadS (Union9 a b c d e f g h i) #

readList :: ReadS [Union9 a b c d e f g h i] #

readPrec :: ReadPrec (Union9 a b c d e f g h i) #

readListPrec :: ReadPrec [Union9 a b c d e f g h i] #

(Show i, Show h, Show g, Show f, Show e, Show d, Show c, Show b, Show a) => Show (Union9 a b c d e f g h i) Source # 

Methods

showsPrec :: Int -> Union9 a b c d e f g h i -> ShowS #

show :: Union9 a b c d e f g h i -> String #

showList :: [Union9 a b c d e f g h i] -> ShowS #

Basic group and ring structure

Classes

class Semigroup m where Source #

The class of all types that have a binary operation. Note that the operation isn't necesarily commutative (in the case of lists, for example)

Methods

(+) :: m -> m -> m infixr 6 Source #

(+) :: Num m => m -> m -> m infixr 6 Source #

Instances

Semigroup Bool Source # 

Methods

(+) :: Bool -> Bool -> Bool Source #

Semigroup Double Source # 

Methods

(+) :: Double -> Double -> Double Source #

Semigroup Float Source # 

Methods

(+) :: Float -> Float -> Float Source #

Semigroup Int Source # 

Methods

(+) :: Int -> Int -> Int Source #

Semigroup Integer Source # 

Methods

(+) :: Integer -> Integer -> Integer Source #

Semigroup Ordering Source # 
Semigroup Rational Source # 
Semigroup () Source # 

Methods

(+) :: () -> () -> () Source #

Semigroup Void Source # 

Methods

(+) :: Void -> Void -> Void Source #

Semigroup Bytes Source # 

Methods

(+) :: Bytes -> Bytes -> Bytes Source #

Semigroup Chunk Source # 

Methods

(+) :: Chunk -> Chunk -> Chunk Source #

Semigroup [a] Source # 

Methods

(+) :: [a] -> [a] -> [a] Source #

Semigroup (Maybe a) Source # 

Methods

(+) :: Maybe a -> Maybe a -> Maybe a Source #

Semigroup (Interleave a) Source # 

Methods

(+) :: Interleave a -> Interleave a -> Interleave a Source #

Ord a => Semigroup (OrdList a) Source # 

Methods

(+) :: OrdList a -> OrdList a -> OrdList a Source #

Semigroup m => Semigroup (Dual m) Source # 

Methods

(+) :: Dual m -> Dual m -> Dual m Source #

Ord a => Semigroup (Min a) Source # 

Methods

(+) :: Min a -> Min a -> Min a Source #

Ord a => Semigroup (Max a) Source # 

Methods

(+) :: Max a -> Max a -> Max a Source #

Semigroup (Id a) Source # 

Methods

(+) :: Id a -> Id a -> Id a Source #

Monoid a => Semigroup (Accum a) Source # 

Methods

(+) :: Accum a -> Accum a -> Accum a Source #

Semigroup (StrictEndo a) Source # 

Methods

(+) :: StrictEndo a -> StrictEndo a -> StrictEndo a Source #

Ring a => Semigroup (Product a) Source # 

Methods

(+) :: Product a -> Product a -> Product a Source #

Semigroup (Slices a) Source # 

Methods

(+) :: Slices a -> Slices a -> Slices a Source #

Semigroup (DeQue a) Source # 

Methods

(+) :: DeQue a -> DeQue a -> DeQue a Source #

Ord t => Semigroup (Time t) Source #

The Time semigroup where ta + tb == max ta tb

Methods

(+) :: Time t -> Time t -> Time t Source #

Category k => Semigroup (Endo k a) Source # 

Methods

(+) :: Endo k a -> Endo k a -> Endo k a Source #

SubSemi b a => Semigroup ((:+:) a b) Source # 

Methods

(+) :: (a :+: b) -> (a :+: b) -> a :+: b Source #

(Semigroup a, Semigroup b) => Semigroup ((:*:) a b) Source # 

Methods

(+) :: (a :*: b) -> (a :*: b) -> a :*: b Source #

Ord k => Semigroup (Increasing k a) Source # 

Methods

(+) :: Increasing k a -> Increasing k a -> Increasing k a Source #

Semigroup a => Semigroup (Const a b) Source # 

Methods

(+) :: Const a b -> Const a b -> Const a b Source #

Semigroup (f a) => Semigroup (Backwards f a) Source # 

Methods

(+) :: Backwards f a -> Backwards f a -> Backwards f a Source #

(SemiApplicative (Zip f), Semigroup a) => Semigroup (Zip f a) Source # 

Methods

(+) :: Zip f a -> Zip f a -> Zip f a Source #

Semigroup (f (Free f a)) => Semigroup (Free f a) Source # 

Methods

(+) :: Free f a -> Free f a -> Free f a Source #

SemiApplicative m => Semigroup (MaybeT m a) Source # 

Methods

(+) :: MaybeT m a -> MaybeT m a -> MaybeT m a Source #

SemiApplicative m => Semigroup (ListT m a) Source # 

Methods

(+) :: ListT m a -> ListT m a -> ListT m a Source #

Semigroup (LogicT m a) Source # 

Methods

(+) :: LogicT m a -> LogicT m a -> LogicT m a Source #

(Monoid e, Ord a) => Semigroup (Equiv e a) Source # 

Methods

(+) :: Equiv e a -> Equiv e a -> Equiv e a Source #

(Ord b, Ord a) => Semigroup (Bimap a b) Source # 

Methods

(+) :: Bimap a b -> Bimap a b -> Bimap a b Source #

(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) Source # 

Methods

(+) :: (a, b, c) -> (a, b, c) -> (a, b, c) Source #

Semigroup (f b a) => Semigroup (Flip f a b) Source # 

Methods

(+) :: Flip f a b -> Flip f a b -> Flip f a b Source #

(Semigroup (f a), SemiApplicative g) => Semigroup (Compose' f g a) Source # 

Methods

(+) :: Compose' f g a -> Compose' f g a -> Compose' f g a Source #

Semigroup (m (a, Void, Void)) => Semigroup (ReaderT r m a) Source # 

Methods

(+) :: ReaderT r m a -> ReaderT r m a -> ReaderT r m a Source #

Semigroup (m (a, s, Void)) => Semigroup (StateT s m a) Source # 

Methods

(+) :: StateT s m a -> StateT s m a -> StateT s m a Source #

Semigroup (m (a, Void, w)) => Semigroup (WriterT w m a) Source # 

Methods

(+) :: WriterT w m a -> WriterT w m a -> WriterT w m a Source #

(Ord a, Ord b) => Semigroup (Relation e a b) Source # 

Methods

(+) :: Relation e a b -> Relation e a b -> Relation e a b Source #

Semigroup (ProbT t m a) Source # 

Methods

(+) :: ProbT t m a -> ProbT t m a -> ProbT t m a Source #

Semigroup (Queue push pop a) Source # 

Methods

(+) :: Queue push pop a -> Queue push pop a -> Queue push pop a Source #

(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d) Source # 

Methods

(+) :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) Source #

Semigroup (m (a, s, w)) => Semigroup (RWST r w s m a) Source # 

Methods

(+) :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a Source #

class Semigroup m => Monoid m where Source #

A monoid is a semigroup with a null element such that zero + a == a + zero == a

Methods

zero :: m Source #

zero :: Num m => m Source #

Instances

Monoid Bool Source # 

Methods

zero :: Bool Source #

Monoid Double Source # 

Methods

zero :: Double Source #

Monoid Float Source # 

Methods

zero :: Float Source #

Monoid Int Source # 

Methods

zero :: Int Source #

Monoid Integer Source # 

Methods

zero :: Integer Source #

Monoid Ordering Source # 

Methods

zero :: Ordering Source #

Monoid Rational Source # 

Methods

zero :: Rational Source #

Monoid () Source # 

Methods

zero :: () Source #

Monoid Void Source # 

Methods

zero :: Void Source #

Monoid Bytes Source # 

Methods

zero :: Bytes Source #

Monoid Chunk Source # 

Methods

zero :: Chunk Source #

Monoid [a] Source # 

Methods

zero :: [a] Source #

Monoid (Maybe a) Source # 

Methods

zero :: Maybe a Source #

Monoid (Interleave a) Source # 

Methods

zero :: Interleave a Source #

Ord a => Monoid (OrdList a) Source # 

Methods

zero :: OrdList a Source #

Monoid m => Monoid (Dual m) Source # 

Methods

zero :: Dual m Source #

(Ord a, Bounded a) => Monoid (Min a) Source # 

Methods

zero :: Min a Source #

(Ord a, Bounded a) => Monoid (Max a) Source # 

Methods

zero :: Max a Source #

Monoid a => Monoid (Accum a) Source # 

Methods

zero :: Accum a Source #

Ring a => Monoid (Product a) Source # 

Methods

zero :: Product a Source #

Monoid (Slices a) Source # 

Methods

zero :: Slices a Source #

Monoid (DeQue a) Source # 

Methods

zero :: DeQue a Source #

Ord t => Monoid (Time t) Source #

The Time monoid where zero == minBound

Methods

zero :: Time t Source #

Category k => Monoid (Endo k a) Source # 

Methods

zero :: Endo k a Source #

(SubSemi b a, Monoid a) => Monoid ((:+:) a b) Source # 

Methods

zero :: a :+: b Source #

(Monoid a, Monoid b) => Monoid ((:*:) a b) Source # 

Methods

zero :: a :*: b Source #

Ord k => Monoid (Increasing k a) Source # 

Methods

zero :: Increasing k a Source #

Monoid a => Monoid (Const a b) Source # 

Methods

zero :: Const a b Source #

Monoid (f a) => Monoid (Backwards f a) Source # 

Methods

zero :: Backwards f a Source #

(Applicative (Zip f), Monoid a) => Monoid (Zip f a) Source # 

Methods

zero :: Zip f a Source #

Monoid (f (Free f a)) => Monoid (Free f a) Source # 

Methods

zero :: Free f a Source #

Applicative m => Monoid (MaybeT m a) Source # 

Methods

zero :: MaybeT m a Source #

Applicative m => Monoid (ListT m a) Source # 

Methods

zero :: ListT m a Source #

Monoid (LogicT m a) Source # 

Methods

zero :: LogicT m a Source #

(Monoid e, Ord a) => Monoid (Equiv e a) Source # 

Methods

zero :: Equiv e a Source #

(Ord b, Ord a) => Monoid (Bimap a b) Source # 

Methods

zero :: Bimap a b Source #

(Monoid a, Monoid b, Monoid c) => Monoid (a, b, c) Source # 

Methods

zero :: (a, b, c) Source #

Monoid (f b a) => Monoid (Flip f a b) Source # 

Methods

zero :: Flip f a b Source #

(Monoid (f a), Applicative g) => Monoid (Compose' f g a) Source # 

Methods

zero :: Compose' f g a Source #

Monoid (m (a, Void, Void)) => Monoid (ReaderT r m a) Source # 

Methods

zero :: ReaderT r m a Source #

Monoid (m (a, s, Void)) => Monoid (StateT s m a) Source # 

Methods

zero :: StateT s m a Source #

Monoid (m (a, Void, w)) => Monoid (WriterT w m a) Source # 

Methods

zero :: WriterT w m a Source #

(Ord a, Ord b) => Monoid (Relation e a b) Source # 

Methods

zero :: Relation e a b Source #

Monoid (ProbT t m a) Source # 

Methods

zero :: ProbT t m a Source #

Monoid (Queue push pop a) Source # 

Methods

zero :: Queue push pop a Source #

(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) Source # 

Methods

zero :: (a, b, c, d) Source #

Monoid (m (a, s, w)) => Monoid (RWST r w s m a) Source # 

Methods

zero :: RWST r w s m a Source #

class Monoid m => Semiring m where Source #

Methods

(*) :: m -> m -> m infixl 7 Source #

(*) :: Num m => m -> m -> m infixl 7 Source #

Instances

Semiring Bool Source # 

Methods

(*) :: Bool -> Bool -> Bool Source #

Semiring Double Source # 

Methods

(*) :: Double -> Double -> Double Source #

Semiring Float Source # 

Methods

(*) :: Float -> Float -> Float Source #

Semiring Int Source # 

Methods

(*) :: Int -> Int -> Int Source #

Semiring Integer Source # 

Methods

(*) :: Integer -> Integer -> Integer Source #

Semiring Rational Source # 
Monoid a => Semiring [a] Source # 

Methods

(*) :: [a] -> [a] -> [a] Source #

Monoid a => Semiring (Maybe a) Source # 

Methods

(*) :: Maybe a -> Maybe a -> Maybe a Source #

Semiring m => Semiring (Dual m) Source # 

Methods

(*) :: Dual m -> Dual m -> Dual m Source #

(Ord a, Bounded a) => Semiring (Min a) Source # 

Methods

(*) :: Min a -> Min a -> Min a Source #

(Ord a, Bounded a) => Semiring (Max a) Source # 

Methods

(*) :: Max a -> Max a -> Max a Source #

Ord t => Semiring (Time t) Source #

The Time ring where (*) == min and one == maxBound

Methods

(*) :: Time t -> Time t -> Time t Source #

(Semiring a, Semiring b) => Semiring ((:*:) a b) Source # 

Methods

(*) :: (a :*: b) -> (a :*: b) -> a :*: b Source #

Semiring (f a) => Semiring (Backwards f a) Source # 

Methods

(*) :: Backwards f a -> Backwards f a -> Backwards f a Source #

Semigroup a => Semiring (LogicT m a) Source # 

Methods

(*) :: LogicT m a -> LogicT m a -> LogicT m a Source #

(Semigroup a, Semigroup b, Ord b, Ord a) => Semiring (Bimap a b) Source # 

Methods

(*) :: Bimap a b -> Bimap a b -> Bimap a b Source #

Semiring (m (a, Void, Void)) => Semiring (ReaderT r m a) Source # 

Methods

(*) :: ReaderT r m a -> ReaderT r m a -> ReaderT r m a Source #

Semiring (m (a, s, Void)) => Semiring (StateT s m a) Source # 

Methods

(*) :: StateT s m a -> StateT s m a -> StateT s m a Source #

Semiring (m (a, Void, w)) => Semiring (WriterT w m a) Source # 

Methods

(*) :: WriterT w m a -> WriterT w m a -> WriterT w m a Source #

(Semigroup e, Ord a, Ord b) => Semiring (Relation e a b) Source # 

Methods

(*) :: Relation e a b -> Relation e a b -> Relation e a b Source #

Semiring (m (a, s, w)) => Semiring (RWST r w s m a) Source # 

Methods

(*) :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a Source #

class Semiring m => Ring m where Source #

Methods

one :: m Source #

one :: Num m => m Source #

Instances

Ring Bool Source # 

Methods

one :: Bool Source #

Ring Double Source # 

Methods

one :: Double Source #

Ring Float Source # 

Methods

one :: Float Source #

Ring Int Source # 

Methods

one :: Int Source #

Ring Integer Source # 

Methods

one :: Integer Source #

Ring Rational Source # 

Methods

one :: Rational Source #

Monoid a => Ring [a] Source # 

Methods

one :: [a] Source #

Monoid a => Ring (Maybe a) Source # 

Methods

one :: Maybe a Source #

Ring m => Ring (Dual m) Source # 

Methods

one :: Dual m Source #

(Ord a, Bounded a) => Ring (Min a) Source # 

Methods

one :: Min a Source #

(Ord a, Bounded a) => Ring (Max a) Source # 

Methods

one :: Max a Source #

Ord t => Ring (Time t) Source # 

Methods

one :: Time t Source #

(Ring a, Ring b) => Ring ((:*:) a b) Source # 

Methods

one :: a :*: b Source #

Ring (f a) => Ring (Backwards f a) Source # 

Methods

one :: Backwards f a Source #

Monoid a => Ring (LogicT m a) Source # 

Methods

one :: LogicT m a Source #

Ring (m (a, Void, Void)) => Ring (ReaderT r m a) Source # 

Methods

one :: ReaderT r m a Source #

Ring (m (a, s, Void)) => Ring (StateT s m a) Source # 

Methods

one :: StateT s m a Source #

Ring (m (a, Void, w)) => Ring (WriterT w m a) Source # 

Methods

one :: WriterT w m a Source #

Ring (m (a, s, w)) => Ring (RWST r w s m a) Source # 

Methods

one :: RWST r w s m a Source #

class (Ring m, Disjonctive m) => Invertible m where Source #

Methods

recip :: m -> m Source #

(/) :: m -> m -> m infixl 7 Source #

class (Semigroup a, Semigroup b) => SubSemi a b where Source #

Minimal complete definition

cast

Methods

cast :: b -> a Source #

Instances

Semigroup a => SubSemi a a Source # 

Methods

cast :: a -> a Source #

Monoid a => SubSemi a Void Source # 

Methods

cast :: Void -> a Source #

Monoid a => SubSemi a () Source # 

Methods

cast :: () -> a Source #

class Unit f where Source #

Minimal complete definition

pure

Methods

pure :: a -> f a Source #

Instances

Unit [] Source # 

Methods

pure :: a -> [a] Source #

Unit Maybe Source # 

Methods

pure :: a -> Maybe a Source #

Unit IO Source # 

Methods

pure :: a -> IO a Source #

Unit Tree Source # 

Methods

pure :: a -> Tree a Source #

Unit Range Source # 

Methods

pure :: a -> Range a Source #

Unit OrdList Source # 

Methods

pure :: a -> OrdList a Source #

Unit Id Source # 

Methods

pure :: a -> Id a Source #

Unit Accum Source # 

Methods

pure :: a -> Accum a Source #

Unit Strict Source # 

Methods

pure :: a -> Strict a Source #

Unit TimeVal Source # 

Methods

pure :: a -> TimeVal a Source #

Unit Time Source # 

Methods

pure :: a -> Time a Source #

Unit ((->) b) Source # 

Methods

pure :: a -> b -> a Source #

Unit (Either a) Source # 

Methods

pure :: a -> Either a a Source #

Monoid w => Unit ((,) w) Source # 

Methods

pure :: a -> (w, a) Source #

Monoid a => Unit (Const a) Source # 

Methods

pure :: a -> Const a a Source #

Unit f => Unit (Backwards f) Source # 

Methods

pure :: a -> Backwards f a Source #

Unit (Zip []) Source # 

Methods

pure :: a -> Zip [] a Source #

Unit (Zip Maybe) Source # 

Methods

pure :: a -> Zip Maybe a Source #

Unit (Zip Tree) Source # 

Methods

pure :: a -> Zip Tree a Source #

Unit (Zip (Free f)) Source # 

Methods

pure :: a -> Zip (Free f) a Source #

Unit (ContT m) Source # 

Methods

pure :: a -> ContT m a Source #

Unit m => Unit (Cofree m) Source # 

Methods

pure :: a -> Cofree m a Source #

Unit (Free f) Source # 

Methods

pure :: a -> Free f a Source #

Unit m => Unit (StrictT m) Source # 

Methods

pure :: a -> StrictT m a Source #

Unit m => Unit (MaybeT m) Source # 

Methods

pure :: a -> MaybeT m a Source #

Unit m => Unit (TreeT m) Source # 

Methods

pure :: a -> TreeT m a Source #

Unit m => Unit (ListT m) Source # 

Methods

pure :: a -> ListT m a Source #

Unit (LogicT m) Source # 

Methods

pure :: a -> LogicT m a Source #

Unit (IOVar w) Source # 

Methods

pure :: a -> IOVar w a Source #

(Unit f, Unit g) => Unit ((:.:) f g) Source # 

Methods

pure :: a -> (f :.: g) a Source #

(Unit f, Unit g) => Unit (Compose' f g) Source # 

Methods

pure :: a -> Compose' f g a Source #

Unit m => Unit (EitherT e m) Source # 

Methods

pure :: a -> EitherT e m a Source #

Unit m => Unit (ReaderT r m) Source # 

Methods

pure :: a -> ReaderT r m a Source #

Unit m => Unit (StateT s m) Source # 

Methods

pure :: a -> StateT s m a Source #

(Monoid w, Unit m) => Unit (WriterT w m) Source # 

Methods

pure :: a -> WriterT w m a Source #

Ring t => Unit (ProbT t m) Source # 

Methods

pure :: a -> ProbT t m a Source #

(Monoid w, Unit m) => Unit (CounterT w acc m) Source # 

Methods

pure :: a -> CounterT w acc m a Source #

(Unit f, Monoid w) => Unit (RWST r w s f) Source # 

Methods

pure :: a -> RWST r w s f a Source #

Common monoids

Control monoids

newtype Endo k a Source #

A monoid on category endomorphisms under composition

Constructors

Endo 

Fields

Instances

Category k => Monoid (Endo k a) Source # 

Methods

zero :: Endo k a Source #

Category k => Semigroup (Endo k a) Source # 

Methods

(+) :: Endo k a -> Endo k a -> Endo k a Source #

Isomorphic (k a a) (k b b) (Endo k a) (Endo k b) Source # 

Methods

i'_ :: Iso (Endo k b) (Endo k a) (k b b) (k a a) Source #

newtype StrictEndo a Source #

Constructors

StrictEndo 

Fields

Instances

Meta-monoids

newtype Dual m Source #

The dual of a monoid is the same as the original, with arguments reversed

Constructors

Dual 

Fields

Instances

Isomorphic a b (Dual a) (Dual b) Source # 

Methods

i'_ :: Iso (Dual b) (Dual a) b a Source #

Ring m => Ring (Dual m) Source # 

Methods

one :: Dual m Source #

Semiring m => Semiring (Dual m) Source # 

Methods

(*) :: Dual m -> Dual m -> Dual m Source #

Monoid m => Monoid (Dual m) Source # 

Methods

zero :: Dual m Source #

Semigroup m => Semigroup (Dual m) Source # 

Methods

(+) :: Dual m -> Dual m -> Dual m Source #

newtype Product a Source #

The Product monoid

Constructors

Product 

Fields

Instances

Isomorphic a b (Product a) (Product b) Source # 

Methods

i'_ :: Iso (Product b) (Product a) b a Source #

Eq a => Eq (Product a) Source # 

Methods

(==) :: Product a -> Product a -> Bool #

(/=) :: Product a -> Product a -> Bool #

Ord a => Ord (Product a) Source # 

Methods

compare :: Product a -> Product a -> Ordering #

(<) :: Product a -> Product a -> Bool #

(<=) :: Product a -> Product a -> Bool #

(>) :: Product a -> Product a -> Bool #

(>=) :: Product a -> Product a -> Bool #

max :: Product a -> Product a -> Product a #

min :: Product a -> Product a -> Product a #

Show a => Show (Product a) Source # 

Methods

showsPrec :: Int -> Product a -> ShowS #

show :: Product a -> String #

showList :: [Product a] -> ShowS #

Ring a => Monoid (Product a) Source # 

Methods

zero :: Product a Source #

Ring a => Semigroup (Product a) Source # 

Methods

(+) :: Product a -> Product a -> Product a Source #

Ring t => MonadWriter (Product t) (ProbT t m) Source # 

Methods

tell :: Product t -> ProbT t m () Source #

listen :: ProbT t m a -> ProbT t m (Product t, a) Source #

censor :: ProbT t m (a, Product t -> Product t) -> ProbT t m a Source #

Accumulating monoids

newtype OrdList a Source #

An ordered list. The semigroup instance merges two lists so that the result remains in ascending order.

Constructors

OrdList 

Fields

Instances

Unit OrdList Source # 

Methods

pure :: a -> OrdList a Source #

Eq a => Eq (OrdList a) Source # 

Methods

(==) :: OrdList a -> OrdList a -> Bool #

(/=) :: OrdList a -> OrdList a -> Bool #

Ord a => Ord (OrdList a) Source # 

Methods

compare :: OrdList a -> OrdList a -> Ordering #

(<) :: OrdList a -> OrdList a -> Bool #

(<=) :: OrdList a -> OrdList a -> Bool #

(>) :: OrdList a -> OrdList a -> Bool #

(>=) :: OrdList a -> OrdList a -> Bool #

max :: OrdList a -> OrdList a -> OrdList a #

min :: OrdList a -> OrdList a -> OrdList a #

Show a => Show (OrdList a) Source # 

Methods

showsPrec :: Int -> OrdList a -> ShowS #

show :: OrdList a -> String #

showList :: [OrdList a] -> ShowS #

Ord a => Monoid (OrdList a) Source # 

Methods

zero :: OrdList a Source #

Ord a => Semigroup (OrdList a) Source # 

Methods

(+) :: OrdList a -> OrdList a -> OrdList a Source #

Isomorphic [a] [b] (OrdList a) (OrdList b) Source # 

Methods

i'_ :: Iso (OrdList b) (OrdList a) [b] [a] Source #

newtype Interleave a Source #

Constructors

Interleave 

Fields

newtype Accum a Source #

A monoid on Maybes, where the sum is the leftmost non-Nothing value.

Constructors

Accum 

Fields

Instances

Unit Accum Source # 

Methods

pure :: a -> Accum a Source #

Monoid a => Monoid (Accum a) Source # 

Methods

zero :: Accum a Source #

Monoid a => Semigroup (Accum a) Source # 

Methods

(+) :: Accum a -> Accum a -> Accum a Source #

newtype Max a Source #

The Max monoid, where (+) =~ max

Constructors

Max 

Fields

Instances

Isomorphic a b (Max a) (Max b) Source # 

Methods

i'_ :: Iso (Max b) (Max a) b a Source #

Bounded a => Bounded (Max a) Source # 

Methods

minBound :: Max a #

maxBound :: Max a #

Eq a => Eq (Max a) Source # 

Methods

(==) :: Max a -> Max a -> Bool #

(/=) :: Max a -> Max a -> Bool #

Ord a => Ord (Max a) Source # 

Methods

compare :: Max a -> Max a -> Ordering #

(<) :: Max a -> Max a -> Bool #

(<=) :: Max a -> Max a -> Bool #

(>) :: Max a -> Max a -> Bool #

(>=) :: Max a -> Max a -> Bool #

max :: Max a -> Max a -> Max a #

min :: Max a -> Max a -> Max a #

Show a => Show (Max a) Source # 

Methods

showsPrec :: Int -> Max a -> ShowS #

show :: Max a -> String #

showList :: [Max a] -> ShowS #

(Ord a, Bounded a) => Ring (Max a) Source # 

Methods

one :: Max a Source #

(Ord a, Bounded a) => Semiring (Max a) Source # 

Methods

(*) :: Max a -> Max a -> Max a Source #

(Ord a, Bounded a) => Monoid (Max a) Source # 

Methods

zero :: Max a Source #

Ord a => Semigroup (Max a) Source # 

Methods

(+) :: Max a -> Max a -> Max a Source #

newtype Min a Source #

The Min monoid, where (+) =~ min

Constructors

Min 

Fields

Instances

Bounded a => Bounded (Min a) Source # 

Methods

minBound :: Min a #

maxBound :: Min a #

Eq a => Eq (Min a) Source # 

Methods

(==) :: Min a -> Min a -> Bool #

(/=) :: Min a -> Min a -> Bool #

Ord a => Ord (Min a) Source # 

Methods

compare :: Min a -> Min a -> Ordering #

(<) :: Min a -> Min a -> Bool #

(<=) :: Min a -> Min a -> Bool #

(>) :: Min a -> Min a -> Bool #

(>=) :: Min a -> Min a -> Bool #

max :: Min a -> Min a -> Min a #

min :: Min a -> Min a -> Min a #

Show a => Show (Min a) Source # 

Methods

showsPrec :: Int -> Min a -> ShowS #

show :: Min a -> String #

showList :: [Min a] -> ShowS #

(Ord a, Bounded a) => Ring (Min a) Source # 

Methods

one :: Min a Source #

(Ord a, Bounded a) => Semiring (Min a) Source # 

Methods

(*) :: Min a -> Min a -> Min a Source #

(Ord a, Bounded a) => Monoid (Min a) Source # 

Methods

zero :: Min a Source #

Ord a => Semigroup (Min a) Source # 

Methods

(+) :: Min a -> Min a -> Min a Source #

newtype Id a Source #

The Identity Functor

Constructors

Id 

Fields

Instances

Unit Id Source # 

Methods

pure :: a -> Id a Source #

Contravariant Id Source # 

Methods

collect :: Functor f => f (Id a) -> Id (f a) Source #

Isomorphic a b (Id a) (Id b) Source # 

Methods

i'_ :: Iso (Id b) (Id a) b a Source #

Show a => Show (Id a) Source # 

Methods

showsPrec :: Int -> Id a -> ShowS #

show :: Id a -> String #

showList :: [Id a] -> ShowS #

Semigroup (Id a) Source # 

Methods

(+) :: Id a -> Id a -> Id a Source #

StateRes r a b => StateRes (Id r) a b Source # 

Methods

evalS :: Id r -> b Source #

execS :: Id r -> a Source #

Fundamental control operations

class Deductive k where Source #

Minimal complete definition

(.)

Methods

(.) :: k b c -> k a b -> k a c infixr 9 Source #

Instances

Deductive (->) Source # 

Methods

(.) :: (b -> c) -> (a -> b) -> a -> c Source #

Monad m => Deductive (Kleisli m) Source # 

Methods

(.) :: Kleisli m b c -> Kleisli m a b -> Kleisli m a c Source #

Deductive (ContC k) Source # 

Methods

(.) :: ContC k b c -> ContC k a b -> ContC k a c Source #

Monad m => Deductive (StateA m) Source # 

Methods

(.) :: StateA m b c -> StateA m a b -> StateA m a c Source #

Deductive k => Deductive (ListA k) Source # 

Methods

(.) :: ListA k b c -> ListA k a b -> ListA k a c Source #

class Deductive k => Category k where Source #

Minimal complete definition

id

Methods

id :: k a a Source #

Instances

Category (->) Source # 

Methods

id :: a -> a Source #

Monad m => Category (Kleisli m) Source # 

Methods

id :: Kleisli m a a Source #

Category (ContC k) Source # 

Methods

id :: ContC k a a Source #

Monad m => Category (StateA m) Source # 

Methods

id :: StateA m a a Source #

Category k => Category (ListA k) Source # 

Methods

id :: ListA k a a Source #

(<<<) :: Category k => k b c -> k a b -> k a c infixr 1 Source #

(>>>) :: Category k => k a b -> k b c -> k a c infixr 1 Source #

(+++) :: Split k => (a -> k c c) -> (b -> k d d) -> (a :+: b) -> k (c, d) (c, d) infixr 1 Source #

Splitting and Choosing

class Category k => Choice k where Source #

Minimal complete definition

(<|>)

Methods

(<|>) :: k a c -> k b c -> k (a :+: b) c infixr 1 Source #

Instances

Choice (->) Source # 

Methods

(<|>) :: (a -> c) -> (b -> c) -> (a :+: b) -> c Source #

Monad m => Choice (Kleisli m) Source # 

Methods

(<|>) :: Kleisli m a c -> Kleisli m b c -> Kleisli m (a :+: b) c Source #

Monad m => Choice (StateA m) Source # 

Methods

(<|>) :: StateA m a c -> StateA m b c -> StateA m (a :+: b) c Source #

Arrow k => Choice (ListA k) Source # 

Methods

(<|>) :: ListA k a c -> ListA k b c -> ListA k (a :+: b) c Source #

class Category k => Split k where Source #

Minimal complete definition

(<#>)

Methods

(<#>) :: k a c -> k b d -> k (a, b) (c, d) infixr 2 Source #

Instances

Split (->) Source # 

Methods

(<#>) :: (a -> c) -> (b -> d) -> (a, b) -> (c, d) Source #

Monad m => Split (Kleisli m) Source # 

Methods

(<#>) :: Kleisli m a c -> Kleisli m b d -> Kleisli m (a, b) (c, d) Source #

Monad m => Split (StateA m) Source # 

Methods

(<#>) :: StateA m a c -> StateA m b d -> StateA m (a, b) (c, d) Source #

Arrow k => Split (ListA k) Source # 

Methods

(<#>) :: ListA k a c -> ListA k b d -> ListA k (a, b) (c, d) Source #

Expression-level type constraints

type Constraint a = a -> a Source #

Miscellaneous functions

const :: Unit m => a -> m a Source #

(&) :: a -> (a -> b) -> b infixl 0 Source #

fix :: (a -> a) -> a Source #

uncurry0 :: a -> () -> a Source #

uncurry :: (a -> b -> c) -> (a, b) -> c Source #

uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d Source #

uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e Source #

first :: Split k => k a b -> k (a, c) (b, c) Source #

second :: Split k => k a b -> k (c, a) (c, b) Source #

ifThenElse :: Bool -> a -> a -> a Source #

bool :: a -> a -> Bool -> a Source #

extreme :: Bounded a => Bool -> a Source #

guard :: (Unit m, Monoid (m ())) => Bool -> m () Source #

unit :: Unit m => m () Source #

when :: Unit m => Bool -> m () -> m () Source #

unless :: Unit m => Bool -> m () -> m () Source #

tailSafe :: [a] -> [a] Source #

headDef :: a -> [a] -> a Source #

fromMaybe :: a -> Maybe a -> a Source #

rmod :: (RealFloat m, Invertible m) => m -> m -> m infixl 7 Source #

inRange :: Ord t => t -> t -> t -> Bool Source #

swap :: (a, b) -> (b, a) Source #

Lazily ordering values

comparing :: Ord a => (b -> a) -> b -> b -> Ordering #

comparing p x y = compare (p x) (p y)

Useful combinator for use in conjunction with the xxxBy family of functions from Data.List, for example:

  ... sortBy (comparing fst) ...

inOrder :: Ord t => t -> t -> (t, t, Bool) Source #

insertOrd :: Ord t => t -> [t] -> [t] Source #

data Assoc k a Source #

Constructors

Assoc k a 

Instances

Lens2 a b (Assoc c a) (Assoc c b) Source # 

Methods

l'2 :: Lens a b (Assoc c a) (Assoc c b) Source #

Lens1 a b (Assoc a c) (Assoc b c) Source # 

Methods

l'1 :: Lens a b (Assoc a c) (Assoc b c) Source #

Ord k => Eq (Assoc k a) Source # 

Methods

(==) :: Assoc k a -> Assoc k a -> Bool #

(/=) :: Assoc k a -> Assoc k a -> Bool #

Ord k => Ord (Assoc k a) Source # 

Methods

compare :: Assoc k a -> Assoc k a -> Ordering #

(<) :: Assoc k a -> Assoc k a -> Bool #

(<=) :: Assoc k a -> Assoc k a -> Bool #

(>) :: Assoc k a -> Assoc k a -> Bool #

(>=) :: Assoc k a -> Assoc k a -> Bool #

max :: Assoc k a -> Assoc k a -> Assoc k a #

min :: Assoc k a -> Assoc k a -> Assoc k a #

(Show a, Show k) => Show (Assoc k a) Source # 

Methods

showsPrec :: Int -> Assoc k a -> ShowS #

show :: Assoc k a -> String #

showList :: [Assoc k a] -> ShowS #

assoc :: a -> Assoc a a Source #

Ranges

newtype Range a Source #

A range of shape (min,max) of ordered values.

Such ranges may be multiplied to create n-dimensional ranges for which equivalence means sharing an n-dimensional subrange. They may be very useful in creating Maps that partition an n-dimensional space in which we may query for subrange membership with logarithmic complexity for any point P (a point is a subrange of volume 0, or `(pure x0,...,pure xn) where (x0,..,xn) = p`).

Indeed, a point is equivalent to a range iff it belongs to that range.

Constructors

Range (a, a) 

Instances

Unit Range Source # 

Methods

pure :: a -> Range a Source #

Ord a => Eq (Range a) Source #

Range equivalence. Two ranges are equivalent iff they share a common subrange (equivalence in this case is not transitive, so beware of unintended consequences)

Methods

(==) :: Range a -> Range a -> Bool #

(/=) :: Range a -> Range a -> Bool #

Ord a => Ord (Range a) Source #

r < r' iff all values of r are below any value of r'

Methods

compare :: Range a -> Range a -> Ordering #

(<) :: Range a -> Range a -> Bool #

(<=) :: Range a -> Range a -> Bool #

(>) :: Range a -> Range a -> Bool #

(>=) :: Range a -> Range a -> Bool #

max :: Range a -> Range a -> Range a #

min :: Range a -> Range a -> Range a #

Parallel short-circuit evaluation

amb :: IO a -> IO a -> IO a Source #

unamb :: a -> a -> a Source #

The rest is imported from the Prelude

module Prelude

class IsString a where #

Class for string-like datastructures; used by the overloaded string extension (-XOverloadedStrings in GHC).

Minimal complete definition

fromString

Methods

fromString :: String -> a #

Instances

IsString ByteString 
IsString ByteString 
(~) * a Char => IsString [a] 

Methods

fromString :: String -> [a] #

IsString a => IsString (Identity a) 

Methods

fromString :: String -> Identity a #

IsString (Seq Char) 

Methods

fromString :: String -> Seq Char #

IsString a => IsString (Const * a b) 

Methods

fromString :: String -> Const * a b #