folds-0.7.1: Beautiful Folding

Safe HaskellNone
LanguageHaskell98

Data.Fold.Internal

Synopsis

Documentation

data SnocList a Source

Reversed '[]'

Constructors

Snoc (SnocList a) a 
Nil 

Instances

Functor SnocList Source 

Methods

fmap :: (a -> b) -> SnocList a -> SnocList b

(<$) :: a -> SnocList b -> SnocList a

Foldable SnocList Source 

Methods

fold :: Monoid m => SnocList m -> m

foldMap :: Monoid m => (a -> m) -> SnocList a -> m

foldr :: (a -> b -> b) -> b -> SnocList a -> b

foldr' :: (a -> b -> b) -> b -> SnocList a -> b

foldl :: (b -> a -> b) -> b -> SnocList a -> b

foldl' :: (b -> a -> b) -> b -> SnocList a -> b

foldr1 :: (a -> a -> a) -> SnocList a -> a

foldl1 :: (a -> a -> a) -> SnocList a -> a

toList :: SnocList a -> [a]

null :: SnocList a -> Bool

length :: SnocList a -> Int

elem :: Eq a => a -> SnocList a -> Bool

maximum :: Ord a => SnocList a -> a

minimum :: Ord a => SnocList a -> a

sum :: Num a => SnocList a -> a

product :: Num a => SnocList a -> a

Traversable SnocList Source 

Methods

traverse :: Applicative f => (a -> f b) -> SnocList a -> f (SnocList b)

sequenceA :: Applicative f => SnocList (f a) -> f (SnocList a)

mapM :: Monad m => (a -> m b) -> SnocList a -> m (SnocList b)

sequence :: Monad m => SnocList (m a) -> m (SnocList a)

Eq a => Eq (SnocList a) Source 

Methods

(==) :: SnocList a -> SnocList a -> Bool

(/=) :: SnocList a -> SnocList a -> Bool

Data a => Data (SnocList a) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SnocList a -> c (SnocList a)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SnocList a)

toConstr :: SnocList a -> Constr

dataTypeOf :: SnocList a -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (SnocList a))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SnocList a))

gmapT :: (forall b. Data b => b -> b) -> SnocList a -> SnocList a

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SnocList a -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SnocList a -> r

gmapQ :: (forall d. Data d => d -> u) -> SnocList a -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> SnocList a -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SnocList a -> m (SnocList a)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SnocList a -> m (SnocList a)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SnocList a -> m (SnocList a)

Ord a => Ord (SnocList a) Source 

Methods

compare :: SnocList a -> SnocList a -> Ordering

(<) :: SnocList a -> SnocList a -> Bool

(<=) :: SnocList a -> SnocList a -> Bool

(>) :: SnocList a -> SnocList a -> Bool

(>=) :: SnocList a -> SnocList a -> Bool

max :: SnocList a -> SnocList a -> SnocList a

min :: SnocList a -> SnocList a -> SnocList a

Read a => Read (SnocList a) Source 
Show a => Show (SnocList a) Source 

Methods

showsPrec :: Int -> SnocList a -> ShowS

show :: SnocList a -> String

showList :: [SnocList a] -> ShowS

data SnocList1 a Source

Constructors

Snoc1 (SnocList1 a) a 
First a 

Instances

Functor SnocList1 Source 

Methods

fmap :: (a -> b) -> SnocList1 a -> SnocList1 b

(<$) :: a -> SnocList1 b -> SnocList1 a

Foldable SnocList1 Source 

Methods

fold :: Monoid m => SnocList1 m -> m

foldMap :: Monoid m => (a -> m) -> SnocList1 a -> m

foldr :: (a -> b -> b) -> b -> SnocList1 a -> b

foldr' :: (a -> b -> b) -> b -> SnocList1 a -> b

foldl :: (b -> a -> b) -> b -> SnocList1 a -> b

foldl' :: (b -> a -> b) -> b -> SnocList1 a -> b

foldr1 :: (a -> a -> a) -> SnocList1 a -> a

foldl1 :: (a -> a -> a) -> SnocList1 a -> a

toList :: SnocList1 a -> [a]

null :: SnocList1 a -> Bool

length :: SnocList1 a -> Int

elem :: Eq a => a -> SnocList1 a -> Bool

maximum :: Ord a => SnocList1 a -> a

minimum :: Ord a => SnocList1 a -> a

sum :: Num a => SnocList1 a -> a

product :: Num a => SnocList1 a -> a

Traversable SnocList1 Source 

Methods

traverse :: Applicative f => (a -> f b) -> SnocList1 a -> f (SnocList1 b)

sequenceA :: Applicative f => SnocList1 (f a) -> f (SnocList1 a)

mapM :: Monad m => (a -> m b) -> SnocList1 a -> m (SnocList1 b)

sequence :: Monad m => SnocList1 (m a) -> m (SnocList1 a)

Eq a => Eq (SnocList1 a) Source 

Methods

(==) :: SnocList1 a -> SnocList1 a -> Bool

(/=) :: SnocList1 a -> SnocList1 a -> Bool

Data a => Data (SnocList1 a) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SnocList1 a -> c (SnocList1 a)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SnocList1 a)

toConstr :: SnocList1 a -> Constr

dataTypeOf :: SnocList1 a -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (SnocList1 a))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SnocList1 a))

gmapT :: (forall b. Data b => b -> b) -> SnocList1 a -> SnocList1 a

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SnocList1 a -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SnocList1 a -> r

gmapQ :: (forall d. Data d => d -> u) -> SnocList1 a -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> SnocList1 a -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SnocList1 a -> m (SnocList1 a)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SnocList1 a -> m (SnocList1 a)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SnocList1 a -> m (SnocList1 a)

Ord a => Ord (SnocList1 a) Source 
Read a => Read (SnocList1 a) Source 
Show a => Show (SnocList1 a) Source 

data List1 a Source

Constructors

Cons1 a (List1 a) 
Last a 

Instances

Functor List1 Source 

Methods

fmap :: (a -> b) -> List1 a -> List1 b

(<$) :: a -> List1 b -> List1 a

Foldable List1 Source 

Methods

fold :: Monoid m => List1 m -> m

foldMap :: Monoid m => (a -> m) -> List1 a -> m

foldr :: (a -> b -> b) -> b -> List1 a -> b

foldr' :: (a -> b -> b) -> b -> List1 a -> b

foldl :: (b -> a -> b) -> b -> List1 a -> b

foldl' :: (b -> a -> b) -> b -> List1 a -> b

foldr1 :: (a -> a -> a) -> List1 a -> a

foldl1 :: (a -> a -> a) -> List1 a -> a

toList :: List1 a -> [a]

null :: List1 a -> Bool

length :: List1 a -> Int

elem :: Eq a => a -> List1 a -> Bool

maximum :: Ord a => List1 a -> a

minimum :: Ord a => List1 a -> a

sum :: Num a => List1 a -> a

product :: Num a => List1 a -> a

Traversable List1 Source 

Methods

traverse :: Applicative f => (a -> f b) -> List1 a -> f (List1 b)

sequenceA :: Applicative f => List1 (f a) -> f (List1 a)

mapM :: Monad m => (a -> m b) -> List1 a -> m (List1 b)

sequence :: Monad m => List1 (m a) -> m (List1 a)

data Maybe' a Source

Strict Maybe

Constructors

Nothing' 
Just' !a 

Instances

Foldable Maybe' Source 

Methods

fold :: Monoid m => Maybe' m -> m

foldMap :: Monoid m => (a -> m) -> Maybe' a -> m

foldr :: (a -> b -> b) -> b -> Maybe' a -> b

foldr' :: (a -> b -> b) -> b -> Maybe' a -> b

foldl :: (b -> a -> b) -> b -> Maybe' a -> b

foldl' :: (b -> a -> b) -> b -> Maybe' a -> b

foldr1 :: (a -> a -> a) -> Maybe' a -> a

foldl1 :: (a -> a -> a) -> Maybe' a -> a

toList :: Maybe' a -> [a]

null :: Maybe' a -> Bool

length :: Maybe' a -> Int

elem :: Eq a => a -> Maybe' a -> Bool

maximum :: Ord a => Maybe' a -> a

minimum :: Ord a => Maybe' a -> a

sum :: Num a => Maybe' a -> a

product :: Num a => Maybe' a -> a

Eq a => Eq (Maybe' a) Source 

Methods

(==) :: Maybe' a -> Maybe' a -> Bool

(/=) :: Maybe' a -> Maybe' a -> Bool

Data a => Data (Maybe' a) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Maybe' a -> c (Maybe' a)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Maybe' a)

toConstr :: Maybe' a -> Constr

dataTypeOf :: Maybe' a -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Maybe' a))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Maybe' a))

gmapT :: (forall b. Data b => b -> b) -> Maybe' a -> Maybe' a

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Maybe' a -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Maybe' a -> r

gmapQ :: (forall d. Data d => d -> u) -> Maybe' a -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Maybe' a -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Maybe' a -> m (Maybe' a)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Maybe' a -> m (Maybe' a)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Maybe' a -> m (Maybe' a)

Ord a => Ord (Maybe' a) Source 

Methods

compare :: Maybe' a -> Maybe' a -> Ordering

(<) :: Maybe' a -> Maybe' a -> Bool

(<=) :: Maybe' a -> Maybe' a -> Bool

(>) :: Maybe' a -> Maybe' a -> Bool

(>=) :: Maybe' a -> Maybe' a -> Bool

max :: Maybe' a -> Maybe' a -> Maybe' a

min :: Maybe' a -> Maybe' a -> Maybe' a

Read a => Read (Maybe' a) Source 
Show a => Show (Maybe' a) Source 

Methods

showsPrec :: Int -> Maybe' a -> ShowS

show :: Maybe' a -> String

showList :: [Maybe' a] -> ShowS

maybe' :: b -> (a -> b) -> Maybe' a -> b Source

data Pair' a b Source

Strict Pair

Constructors

Pair' !a !b 

Instances

(Eq a, Eq b) => Eq (Pair' a b) Source 

Methods

(==) :: Pair' a b -> Pair' a b -> Bool

(/=) :: Pair' a b -> Pair' a b -> Bool

(Data a, Data b) => Data (Pair' a b) Source 

Methods

gfoldl :: (forall d e. Data d => c (d -> e) -> d -> c e) -> (forall g. g -> c g) -> Pair' a b -> c (Pair' a b)

gunfold :: (forall d r. Data d => c (d -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Pair' a b)

toConstr :: Pair' a b -> Constr

dataTypeOf :: Pair' a b -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Pair' a b))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Pair' a b))

gmapT :: (forall c. Data c => c -> c) -> Pair' a b -> Pair' a b

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pair' a b -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pair' a b -> r

gmapQ :: (forall d. Data d => d -> u) -> Pair' a b -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Pair' a b -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pair' a b -> m (Pair' a b)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pair' a b -> m (Pair' a b)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pair' a b -> m (Pair' a b)

(Ord a, Ord b) => Ord (Pair' a b) Source 

Methods

compare :: Pair' a b -> Pair' a b -> Ordering

(<) :: Pair' a b -> Pair' a b -> Bool

(<=) :: Pair' a b -> Pair' a b -> Bool

(>) :: Pair' a b -> Pair' a b -> Bool

(>=) :: Pair' a b -> Pair' a b -> Bool

max :: Pair' a b -> Pair' a b -> Pair' a b

min :: Pair' a b -> Pair' a b -> Pair' a b

(Read a, Read b) => Read (Pair' a b) Source 
(Show a, Show b) => Show (Pair' a b) Source 

Methods

showsPrec :: Int -> Pair' a b -> ShowS

show :: Pair' a b -> String

showList :: [Pair' a b] -> ShowS

(Monoid a, Monoid b) => Monoid (Pair' a b) Source 

Methods

mempty :: Pair' a b

mappend :: Pair' a b -> Pair' a b -> Pair' a b

mconcat :: [Pair' a b] -> Pair' a b

(Semigroup a, Semigroup b) => Semigroup (Pair' a b) Source 

Methods

(<>) :: Pair' a b -> Pair' a b -> Pair' a b

sconcat :: NonEmpty (Pair' a b) -> Pair' a b

stimes :: Integral c => c -> Pair' a b -> Pair' a b

newtype N a s Source

A reified Monoid.

Constructors

N 

Fields

Instances

Eq a => Eq (N a s) Source 

Methods

(==) :: N a s -> N a s -> Bool

(/=) :: N a s -> N a s -> Bool

(Data a, Data s) => Data (N a s) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> N a s -> c (N a s)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (N a s)

toConstr :: N a s -> Constr

dataTypeOf :: N a s -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (N a s))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (N a s))

gmapT :: (forall b. Data b => b -> b) -> N a s -> N a s

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> N a s -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> N a s -> r

gmapQ :: (forall d. Data d => d -> u) -> N a s -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> N a s -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> N a s -> m (N a s)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> N a s -> m (N a s)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> N a s -> m (N a s)

Ord a => Ord (N a s) Source 

Methods

compare :: N a s -> N a s -> Ordering

(<) :: N a s -> N a s -> Bool

(<=) :: N a s -> N a s -> Bool

(>) :: N a s -> N a s -> Bool

(>=) :: N a s -> N a s -> Bool

max :: N a s -> N a s -> N a s

min :: N a s -> N a s -> N a s

Read a => Read (N a s) Source 

Methods

readsPrec :: Int -> ReadS (N a s)

readList :: ReadS [N a s]

readPrec :: ReadPrec (N a s)

readListPrec :: ReadPrec [N a s]

Show a => Show (N a s) Source 

Methods

showsPrec :: Int -> N a s -> ShowS

show :: N a s -> String

showList :: [N a s] -> ShowS

Reifies * s (a -> a -> a, a) => Monoid (N a s) Source 

Methods

mempty :: N a s

mappend :: N a s -> N a s -> N a s

mconcat :: [N a s] -> N a s

Reifies * s (a -> a -> a, a) => Semigroup (N a s) Source 

Methods

(<>) :: N a s -> N a s -> N a s

sconcat :: NonEmpty (N a s) -> N a s

stimes :: Integral b => b -> N a s -> N a s

newtype S a s Source

A reified Semigroup.

Constructors

S 

Fields

Instances

Eq a => Eq (S a s) Source 

Methods

(==) :: S a s -> S a s -> Bool

(/=) :: S a s -> S a s -> Bool

(Data a, Data s) => Data (S a s) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> S a s -> c (S a s)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (S a s)

toConstr :: S a s -> Constr

dataTypeOf :: S a s -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (S a s))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (S a s))

gmapT :: (forall b. Data b => b -> b) -> S a s -> S a s

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> S a s -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> S a s -> r

gmapQ :: (forall d. Data d => d -> u) -> S a s -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> S a s -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> S a s -> m (S a s)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> S a s -> m (S a s)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> S a s -> m (S a s)

Ord a => Ord (S a s) Source 

Methods

compare :: S a s -> S a s -> Ordering

(<) :: S a s -> S a s -> Bool

(<=) :: S a s -> S a s -> Bool

(>) :: S a s -> S a s -> Bool

(>=) :: S a s -> S a s -> Bool

max :: S a s -> S a s -> S a s

min :: S a s -> S a s -> S a s

Read a => Read (S a s) Source 

Methods

readsPrec :: Int -> ReadS (S a s)

readList :: ReadS [S a s]

readPrec :: ReadPrec (S a s)

readListPrec :: ReadPrec [S a s]

Show a => Show (S a s) Source 

Methods

showsPrec :: Int -> S a s -> ShowS

show :: S a s -> String

showList :: [S a s] -> ShowS

Reifies * s (a -> a -> a) => Semigroup (S a s) Source 

Methods

(<>) :: S a s -> S a s -> S a s

sconcat :: NonEmpty (S a s) -> S a s

stimes :: Integral b => b -> S a s -> S a s

data Tree a Source

The shape of a foldMap

Constructors

Zero 
One a 
Two (Tree a) (Tree a) 

Instances

Functor Tree Source 

Methods

fmap :: (a -> b) -> Tree a -> Tree b

(<$) :: a -> Tree b -> Tree a

Foldable Tree Source 

Methods

fold :: Monoid m => Tree m -> m

foldMap :: Monoid m => (a -> m) -> Tree a -> m

foldr :: (a -> b -> b) -> b -> Tree a -> b

foldr' :: (a -> b -> b) -> b -> Tree a -> b

foldl :: (b -> a -> b) -> b -> Tree a -> b

foldl' :: (b -> a -> b) -> b -> Tree a -> b

foldr1 :: (a -> a -> a) -> Tree a -> a

foldl1 :: (a -> a -> a) -> Tree a -> a

toList :: Tree a -> [a]

null :: Tree a -> Bool

length :: Tree a -> Int

elem :: Eq a => a -> Tree a -> Bool

maximum :: Ord a => Tree a -> a

minimum :: Ord a => Tree a -> a

sum :: Num a => Tree a -> a

product :: Num a => Tree a -> a

Traversable Tree Source 

Methods

traverse :: Applicative f => (a -> f b) -> Tree a -> f (Tree b)

sequenceA :: Applicative f => Tree (f a) -> f (Tree a)

mapM :: Monad m => (a -> m b) -> Tree a -> m (Tree b)

sequence :: Monad m => Tree (m a) -> m (Tree a)

Eq a => Eq (Tree a) Source 

Methods

(==) :: Tree a -> Tree a -> Bool

(/=) :: Tree a -> Tree a -> Bool

Data a => Data (Tree a) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Tree a -> c (Tree a)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Tree a)

toConstr :: Tree a -> Constr

dataTypeOf :: Tree a -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Tree a))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Tree a))

gmapT :: (forall b. Data b => b -> b) -> Tree a -> Tree a

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tree a -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tree a -> r

gmapQ :: (forall d. Data d => d -> u) -> Tree a -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Tree a -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tree a -> m (Tree a)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tree a -> m (Tree a)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tree a -> m (Tree a)

Ord a => Ord (Tree a) Source 

Methods

compare :: Tree a -> Tree a -> Ordering

(<) :: Tree a -> Tree a -> Bool

(<=) :: Tree a -> Tree a -> Bool

(>) :: Tree a -> Tree a -> Bool

(>=) :: Tree a -> Tree a -> Bool

max :: Tree a -> Tree a -> Tree a

min :: Tree a -> Tree a -> Tree a

Read a => Read (Tree a) Source 
Show a => Show (Tree a) Source 

Methods

showsPrec :: Int -> Tree a -> ShowS

show :: Tree a -> String

showList :: [Tree a] -> ShowS

MuRef (Tree a) Source 

Associated Types

type DeRef (Tree a) :: * -> *

Methods

mapDeRef :: Applicative f => (forall b. (MuRef b, ((* -> *) ~ DeRef (Tree a)) (DeRef b)) => b -> f u) -> Tree a -> f (DeRef (Tree a) u)

type DeRef (Tree a) Source 

data Tree1 a Source

Constructors

Bin1 (Tree1 a) (Tree1 a) 
Tip1 a 

Instances

Functor Tree1 Source 

Methods

fmap :: (a -> b) -> Tree1 a -> Tree1 b

(<$) :: a -> Tree1 b -> Tree1 a

Foldable Tree1 Source 

Methods

fold :: Monoid m => Tree1 m -> m

foldMap :: Monoid m => (a -> m) -> Tree1 a -> m

foldr :: (a -> b -> b) -> b -> Tree1 a -> b

foldr' :: (a -> b -> b) -> b -> Tree1 a -> b

foldl :: (b -> a -> b) -> b -> Tree1 a -> b

foldl' :: (b -> a -> b) -> b -> Tree1 a -> b

foldr1 :: (a -> a -> a) -> Tree1 a -> a

foldl1 :: (a -> a -> a) -> Tree1 a -> a

toList :: Tree1 a -> [a]

null :: Tree1 a -> Bool

length :: Tree1 a -> Int

elem :: Eq a => a -> Tree1 a -> Bool

maximum :: Ord a => Tree1 a -> a

minimum :: Ord a => Tree1 a -> a

sum :: Num a => Tree1 a -> a

product :: Num a => Tree1 a -> a

Traversable Tree1 Source 

Methods

traverse :: Applicative f => (a -> f b) -> Tree1 a -> f (Tree1 b)

sequenceA :: Applicative f => Tree1 (f a) -> f (Tree1 a)

mapM :: Monad m => (a -> m b) -> Tree1 a -> m (Tree1 b)

sequence :: Monad m => Tree1 (m a) -> m (Tree1 a)

MuRef (Tree1 a) Source 

Associated Types

type DeRef (Tree1 a) :: * -> *

Methods

mapDeRef :: Applicative f => (forall b. (MuRef b, ((* -> *) ~ DeRef (Tree1 a)) (DeRef b)) => b -> f u) -> Tree1 a -> f (DeRef (Tree1 a) u)

type DeRef (Tree1 a) Source 

newtype An a Source

Constructors

An a 

Instances

Functor An Source 

Methods

fmap :: (a -> b) -> An a -> An b

(<$) :: a -> An b -> An a

Foldable An Source 

Methods

fold :: Monoid m => An m -> m

foldMap :: Monoid m => (a -> m) -> An a -> m

foldr :: (a -> b -> b) -> b -> An a -> b

foldr' :: (a -> b -> b) -> b -> An a -> b

foldl :: (b -> a -> b) -> b -> An a -> b

foldl' :: (b -> a -> b) -> b -> An a -> b

foldr1 :: (a -> a -> a) -> An a -> a

foldl1 :: (a -> a -> a) -> An a -> a

toList :: An a -> [a]

null :: An a -> Bool

length :: An a -> Int

elem :: Eq a => a -> An a -> Bool

maximum :: Ord a => An a -> a

minimum :: Ord a => An a -> a

sum :: Num a => An a -> a

product :: Num a => An a -> a

Traversable An Source 

Methods

traverse :: Applicative f => (a -> f b) -> An a -> f (An b)

sequenceA :: Applicative f => An (f a) -> f (An a)

mapM :: Monad m => (a -> m b) -> An a -> m (An b)

sequence :: Monad m => An (m a) -> m (An a)

Eq a => Eq (An a) Source 

Methods

(==) :: An a -> An a -> Bool

(/=) :: An a -> An a -> Bool

Data a => Data (An a) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> An a -> c (An a)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (An a)

toConstr :: An a -> Constr

dataTypeOf :: An a -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (An a))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (An a))

gmapT :: (forall b. Data b => b -> b) -> An a -> An a

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> An a -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> An a -> r

gmapQ :: (forall d. Data d => d -> u) -> An a -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> An a -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> An a -> m (An a)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> An a -> m (An a)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> An a -> m (An a)

Ord a => Ord (An a) Source 

Methods

compare :: An a -> An a -> Ordering

(<) :: An a -> An a -> Bool

(<=) :: An a -> An a -> Bool

(>) :: An a -> An a -> Bool

(>=) :: An a -> An a -> Bool

max :: An a -> An a -> An a

min :: An a -> An a -> An a

Read a => Read (An a) Source 
Show a => Show (An a) Source 

Methods

showsPrec :: Int -> An a -> ShowS

show :: An a -> String

showList :: [An a] -> ShowS

data Box a Source

Constructors

Box a 

Instances

Functor Box Source 

Methods

fmap :: (a -> b) -> Box a -> Box b

(<$) :: a -> Box b -> Box a

Foldable Box Source 

Methods

fold :: Monoid m => Box m -> m

foldMap :: Monoid m => (a -> m) -> Box a -> m

foldr :: (a -> b -> b) -> b -> Box a -> b

foldr' :: (a -> b -> b) -> b -> Box a -> b

foldl :: (b -> a -> b) -> b -> Box a -> b

foldl' :: (b -> a -> b) -> b -> Box a -> b

foldr1 :: (a -> a -> a) -> Box a -> a

foldl1 :: (a -> a -> a) -> Box a -> a

toList :: Box a -> [a]

null :: Box a -> Bool

length :: Box a -> Int

elem :: Eq a => a -> Box a -> Bool

maximum :: Ord a => Box a -> a

minimum :: Ord a => Box a -> a

sum :: Num a => Box a -> a

product :: Num a => Box a -> a

Traversable Box Source 

Methods

traverse :: Applicative f => (a -> f b) -> Box a -> f (Box b)

sequenceA :: Applicative f => Box (f a) -> f (Box a)

mapM :: Monad m => (a -> m b) -> Box a -> m (Box b)

sequence :: Monad m => Box (m a) -> m (Box a)

Eq a => Eq (Box a) Source 

Methods

(==) :: Box a -> Box a -> Bool

(/=) :: Box a -> Box a -> Bool

Data a => Data (Box a) Source 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Box a -> c (Box a)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Box a)

toConstr :: Box a -> Constr

dataTypeOf :: Box a -> DataType

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Box a))

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Box a))

gmapT :: (forall b. Data b => b -> b) -> Box a -> Box a

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Box a -> r

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Box a -> r

gmapQ :: (forall d. Data d => d -> u) -> Box a -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Box a -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Box a -> m (Box a)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Box a -> m (Box a)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Box a -> m (Box a)

Ord a => Ord (Box a) Source 

Methods

compare :: Box a -> Box a -> Ordering

(<) :: Box a -> Box a -> Bool

(<=) :: Box a -> Box a -> Bool

(>) :: Box a -> Box a -> Bool

(>=) :: Box a -> Box a -> Bool

max :: Box a -> Box a -> Box a

min :: Box a -> Box a -> Box a

Read a => Read (Box a) Source 
Show a => Show (Box a) Source 

Methods

showsPrec :: Int -> Box a -> ShowS

show :: Box a -> String

showList :: [Box a] -> ShowS

newtype FreeMonoid a Source

Constructors

FreeMonoid 

Fields

Instances

Functor FreeMonoid Source 

Methods

fmap :: (a -> b) -> FreeMonoid a -> FreeMonoid b

(<$) :: a -> FreeMonoid b -> FreeMonoid a

Foldable FreeMonoid Source 

Methods

fold :: Monoid m => FreeMonoid m -> m

foldMap :: Monoid m => (a -> m) -> FreeMonoid a -> m

foldr :: (a -> b -> b) -> b -> FreeMonoid a -> b

foldr' :: (a -> b -> b) -> b -> FreeMonoid a -> b

foldl :: (b -> a -> b) -> b -> FreeMonoid a -> b

foldl' :: (b -> a -> b) -> b -> FreeMonoid a -> b

foldr1 :: (a -> a -> a) -> FreeMonoid a -> a

foldl1 :: (a -> a -> a) -> FreeMonoid a -> a

toList :: FreeMonoid a -> [a]

null :: FreeMonoid a -> Bool

length :: FreeMonoid a -> Int

elem :: Eq a => a -> FreeMonoid a -> Bool

maximum :: Ord a => FreeMonoid a -> a

minimum :: Ord a => FreeMonoid a -> a

sum :: Num a => FreeMonoid a -> a

product :: Num a => FreeMonoid a -> a

Cosieve M FreeMonoid 

Methods

cosieve :: M a b -> FreeMonoid a -> b

MonadReader (FreeMonoid a) (M a) 

Methods

ask :: M a (FreeMonoid a)

local :: (FreeMonoid a -> FreeMonoid a) -> M a b -> M a b

reader :: (FreeMonoid a -> b) -> M a b

foldDeRef :: forall f a. (MuRef1 f, Bifoldable (DeRef1 f)) => f a -> FreeMonoid a Source

newtype FreeSemigroup a Source

Constructors

FreeSemigroup 

Fields

Instances

Functor FreeSemigroup Source 

Methods

fmap :: (a -> b) -> FreeSemigroup a -> FreeSemigroup b

(<$) :: a -> FreeSemigroup b -> FreeSemigroup a

Foldable FreeSemigroup Source 

Methods

fold :: Monoid m => FreeSemigroup m -> m

foldMap :: Monoid m => (a -> m) -> FreeSemigroup a -> m

foldr :: (a -> b -> b) -> b -> FreeSemigroup a -> b

foldr' :: (a -> b -> b) -> b -> FreeSemigroup a -> b

foldl :: (b -> a -> b) -> b -> FreeSemigroup a -> b

foldl' :: (b -> a -> b) -> b -> FreeSemigroup a -> b

foldr1 :: (a -> a -> a) -> FreeSemigroup a -> a

foldl1 :: (a -> a -> a) -> FreeSemigroup a -> a

toList :: FreeSemigroup a -> [a]

null :: FreeSemigroup a -> Bool

length :: FreeSemigroup a -> Int

elem :: Eq a => a -> FreeSemigroup a -> Bool

maximum :: Ord a => FreeSemigroup a -> a

minimum :: Ord a => FreeSemigroup a -> a

sum :: Num a => FreeSemigroup a -> a

product :: Num a => FreeSemigroup a -> a

Foldable1 FreeSemigroup Source 

Methods

fold1 :: Semigroup m => FreeSemigroup m -> m

foldMap1 :: Semigroup m => (a -> m) -> FreeSemigroup a -> m

Cosieve M1 FreeSemigroup 

Methods

cosieve :: M1 a b -> FreeSemigroup a -> b

MonadReader (FreeSemigroup a) (M1 a) 

Methods

ask :: M1 a (FreeSemigroup a)

local :: (FreeSemigroup a -> FreeSemigroup a) -> M1 a b -> M1 a b

reader :: (FreeSemigroup a -> b) -> M1 a b

foldDeRef1 :: forall f a. (MuRef1 f, Bifoldable1 (DeRef1 f)) => f a -> FreeSemigroup a Source