maam-0.3.0.0: Monadic Abstracting Abstract Machines (MAAM) built on Galois Transformers

Safe HaskellNone
LanguageHaskell2010

FP.Prelude.Lib

Documentation

cond :: (a -> 𝔹) -> (a -> b) -> (a -> b) -> a -> b Source

applyTo :: a -> (a -> b) -> b Source

data MStream m a where Source

Constructors

MStream :: s -> (s -> m (a, s)) -> MStream m a 

length :: ToFold a t => t -> Source

count :: ToFold a t => (a -> 𝔹) -> t -> Source

nth :: ToFold a t => -> t -> Maybe a Source

szip :: Stream a -> Stream b -> Stream (a, b) Source

head :: [a] -> Maybe a Source

tail :: [a] -> Maybe [a] Source

bigProduct :: [[a]] -> [[a]] Source

mapHead :: (a -> a) -> [a] -> [a] Source

mapTail :: (a -> a) -> [a] -> [a] Source

firstN :: -> [a] -> [a] Source

filterMap :: forall a b. (a -> Maybe b) -> [a] -> [b] Source

filter :: (a -> Bool) -> [a] -> [a] Source

splitPrefix :: Eq a => [a] -> [a] -> Maybe ([a], [a]) Source

prefixUntil :: forall a. (a -> 𝔹) -> [a] -> ([a], [a]) Source

uniques :: forall a. Ord a => [a] -> [a] Source

replicate :: -> a -> [a] Source

intersperse :: a -> [a] -> [a] Source

buildN :: -> a -> (a -> a) -> [a] Source

upTo :: -> [] Source

applyN :: -> b -> (b -> b) -> b Source

appendN :: Monoid a => -> a -> a Source

applyUntil :: (a -> a) -> (a -> a -> 𝔹) -> a -> a Source

applyUntilHistory :: (a -> a) -> (a -> a -> 𝔹) -> a -> [a] Source

poiter :: POrd a => (a -> a) -> a -> a Source

poiterHistory :: POrd a => (a -> a) -> a -> [a] Source

collect :: (Join a, POrd a) => (a -> a) -> a -> a Source

collectN :: (Join a, POrd a) => -> (a -> a) -> a -> a Source

collectHistory :: (Join a, POrd a) => (a -> a) -> a -> [a] Source

collectHistoryN :: (Join a, POrd a) => -> (a -> a) -> a -> [a] Source

collectDiffs :: (POrd a, JoinLattice a, Difference a) => (a -> a) -> a -> Stream a Source

collectDiffsN :: (POrd a, JoinLattice a, Difference a) => -> (a -> a) -> a -> Stream a Source

many :: (Monad m, MonadMonoid m) => m a -> m [a] Source

oneOrMore :: (Monad m, MonadMonoid m) => m a -> m [a] Source

oneOrMoreSplit :: (Monad m, MonadMonoid m) => m a -> m (a, [a]) Source

twoOrMoreSplit :: (Monad m, MonadMonoid m) => m a -> m (a, a, [a]) Source

manySepBy :: (Monad m, MonadMonoid m) => m () -> m a -> m [a] Source

manyPrefBy :: (Monad m, MonadMonoid m) => m () -> m a -> m [a] Source

class Comonad w where Source

Methods

extract :: w a -> a Source

(=≫) :: w a -> (w a -> b) -> w b infixr 1 Source

kextract :: Comonad w => (a -> b) -> w a -> b Source

kextract2 :: Comonad w => (a -> b -> c) -> w a -> w b -> c Source

siphon :: Comonad w => w a -> b -> w b Source

dance :: (Functor m, Comonad w) => w (m a) -> m (w a) Source

newtype Endo a Source

Constructors

Endo 

Fields

runEndo :: a -> a
 

Instances

compose :: forall a. [a -> a] -> a -> a Source

data EndoM m a Source

Constructors

EndoM 

Fields

runEndoM :: a -> m a
 

Instances

Monad m => Monoid (EndoM m a) Source 

mcompose :: Monad m => [a -> m a] -> a -> m a Source

data EndoW w a Source

Constructors

EndoW 

Fields

runEndoW :: w a -> a
 

Instances

Comonad w => Monoid (EndoW w a) Source 

wcompose :: Comonad w => [w a -> a] -> w a -> a Source

newtype (t u) a Source

Constructors

Compose 

Fields

runCompose :: t (u a)
 

Instances

Eq (t (u a)) => Eq ((⊡) k k t u a) Source 
Ord (t (u a)) => Ord ((⊡) k k t u a) Source 
Lattice (t (u a)) => Lattice ((⊡) k k t u a) Source 
MeetLattice (t (u a)) => MeetLattice ((⊡) k k t u a) Source 
JoinLattice (t (u a)) => JoinLattice ((⊡) k k t u a) Source 
Meet (t (u a)) => Meet ((⊡) k k t u a) Source 
Top (t (u a)) => Top ((⊡) k k t u a) Source 
Join (t (u a)) => Join ((⊡) k k t u a) Source 
Bot (t (u a)) => Bot ((⊡) k k t u a) Source 
POrd (t (u a)) => POrd ((⊡) k k t u a) Source 

onComposeIso :: (t (u a) -> t (u b)) -> (t u) a -> (t u) b Source

data Annotated t a Source

Constructors

Annotated 

Fields

annotatedTag :: t
 
annotatedValue :: a
 

newtype Fixed f Source

Constructors

Fixed 

Fields

unfold :: f (Fixed f)
 

mapFixed :: Functor f => (f g) -> Fixed f -> Fixed g Source

data First a Source

Constructors

NotFirst 
First a 

Instances

data Last a Source

Constructors

NotLast 
Last a 

Instances

last :: Maybe a -> Last a Source

data P a Source

Constructors

P 

memoFix :: forall a b. Ord a => ((a -> b) -> a -> b) -> a -> b Source