folds-0.7.8: Beautiful Folding
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Fold.L1'

Synopsis
  • data L1' a b = forall c. L1' (c -> b) (c -> a -> c) (a -> c)

Documentation

data L1' a b Source #

A strict Mealy Machine

Constructors

forall c. L1' (c -> b) (c -> a -> c) (a -> c) 

Instances

Instances details
Arrow L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

arr :: (b -> c) -> L1' b c #

first :: L1' b c -> L1' (b, d) (c, d) #

second :: L1' b c -> L1' (d, b) (d, c) #

(***) :: L1' b c -> L1' b' c' -> L1' (b, b') (c, c') #

(&&&) :: L1' b c -> L1' b c' -> L1' b (c, c') #

ArrowChoice L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

left :: L1' b c -> L1' (Either b d) (Either c d) #

right :: L1' b c -> L1' (Either d b) (Either d c) #

(+++) :: L1' b c -> L1' b' c' -> L1' (Either b b') (Either c c') #

(|||) :: L1' b d -> L1' c d -> L1' (Either b c) d #

Profunctor L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

dimap :: (a -> b) -> (c -> d) -> L1' b c -> L1' a d #

lmap :: (a -> b) -> L1' b c -> L1' a c #

rmap :: (b -> c) -> L1' a b -> L1' a c #

(#.) :: forall a b c q. Coercible c b => q b c -> L1' a b -> L1' a c #

(.#) :: forall a b c q. Coercible b a => L1' b c -> q a b -> L1' a c #

Costrong L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

unfirst :: L1' (a, d) (b, d) -> L1' a b #

unsecond :: L1' (d, a) (d, b) -> L1' a b #

Strong L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

first' :: L1' a b -> L1' (a, c) (b, c) #

second' :: L1' a b -> L1' (c, a) (c, b) #

Corepresentable L1' Source # 
Instance details

Defined in Data.Fold.L1'

Associated Types

type Corep L1' :: Type -> Type #

Methods

cotabulate :: (Corep L1' d -> c) -> L1' d c #

Choice L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

left' :: L1' a b -> L1' (Either a c) (Either b c) #

right' :: L1' a b -> L1' (Either c a) (Either c b) #

Closed L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

closed :: L1' a b -> L1' (x -> a) (x -> b) #

Scan L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

prefix1 :: a -> L1' a b -> L1' a b Source #

postfix1 :: L1' a b -> a -> L1' a b Source #

run1 :: a -> L1' a b -> b Source #

interspersing :: a -> L1' a b -> L1' a b Source #

AsL1' L1' Source # 
Instance details

Defined in Data.Fold

Methods

asL1' :: L1' a b -> L1' a b Source #

AsRM1 L1' Source # 
Instance details

Defined in Data.Fold

Methods

asM1 :: L1' a b -> M1 a b Source #

asR1 :: L1' a b -> R1 a b Source #

Cosieve L1' NonEmpty Source # 
Instance details

Defined in Data.Fold.L1'

Methods

cosieve :: L1' a b -> NonEmpty a -> b #

Monad (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

(>>=) :: L1' a a0 -> (a0 -> L1' a b) -> L1' a b #

(>>) :: L1' a a0 -> L1' a b -> L1' a b #

return :: a0 -> L1' a a0 #

Functor (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

fmap :: (a0 -> b) -> L1' a a0 -> L1' a b #

(<$) :: a0 -> L1' a b -> L1' a a0 #

MonadFix (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

mfix :: (a0 -> L1' a a0) -> L1' a a0 #

Applicative (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

pure :: a0 -> L1' a a0 #

(<*>) :: L1' a (a0 -> b) -> L1' a a0 -> L1' a b #

liftA2 :: (a0 -> b -> c) -> L1' a a0 -> L1' a b -> L1' a c #

(*>) :: L1' a a0 -> L1' a b -> L1' a b #

(<*) :: L1' a a0 -> L1' a b -> L1' a a0 #

Distributive (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

distribute :: Functor f => f (L1' a a0) -> L1' a (f a0) #

collect :: Functor f => (a0 -> L1' a b) -> f a0 -> L1' a (f b) #

distributeM :: Monad m => m (L1' a a0) -> L1' a (m a0) #

collectM :: Monad m => (a0 -> L1' a b) -> m a0 -> L1' a (m b) #

Representable (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Associated Types

type Rep (L1' a) #

Methods

tabulate :: (Rep (L1' a) -> a0) -> L1' a a0 #

index :: L1' a a0 -> Rep (L1' a) -> a0 #

Apply (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

(<.>) :: L1' a (a0 -> b) -> L1' a a0 -> L1' a b #

(.>) :: L1' a a0 -> L1' a b -> L1' a b #

(<.) :: L1' a a0 -> L1' a b -> L1' a a0 #

liftF2 :: (a0 -> b -> c) -> L1' a a0 -> L1' a b -> L1' a c #

Pointed (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

point :: a0 -> L1' a a0 #

Category L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

id :: forall (a :: k). L1' a a #

(.) :: forall (b :: k) (c :: k) (a :: k). L1' b c -> L1' a b -> L1' a c #

Semigroupoid L1' Source # 
Instance details

Defined in Data.Fold.L1'

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). L1' j k1 -> L1' i j -> L1' i k1 #

MonadReader (NonEmpty a) (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

Methods

ask :: L1' a (NonEmpty a) #

local :: (NonEmpty a -> NonEmpty a) -> L1' a a0 -> L1' a a0 #

reader :: (NonEmpty a -> a0) -> L1' a a0 #

type Corep L1' Source # 
Instance details

Defined in Data.Fold.L1'

type Rep (L1' a) Source # 
Instance details

Defined in Data.Fold.L1'

type Rep (L1' a) = NonEmpty a