folds-0.7.7: Beautiful Folding
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Fold.R1

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

Documentation

data R1 a b Source #

A reversed Mealy machine

Constructors

forall c. R1 (c -> b) (a -> c -> c) (a -> c) 

Instances

Instances details
Arrow R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

arr :: (b -> c) -> R1 b c #

first :: R1 b c -> R1 (b, d) (c, d) #

second :: R1 b c -> R1 (d, b) (d, c) #

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

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

ArrowChoice R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

left :: R1 b c -> R1 (Either b d) (Either c d) #

right :: R1 b c -> R1 (Either d b) (Either d c) #

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

(|||) :: R1 b d -> R1 c d -> R1 (Either b c) d #

Profunctor R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

dimap :: (a -> b) -> (c -> d) -> R1 b c -> R1 a d #

lmap :: (a -> b) -> R1 b c -> R1 a c #

rmap :: (b -> c) -> R1 a b -> R1 a c #

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

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

Costrong R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

unfirst :: R1 (a, d) (b, d) -> R1 a b #

unsecond :: R1 (d, a) (d, b) -> R1 a b #

Strong R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

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

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

Corepresentable R1 Source # 
Instance details

Defined in Data.Fold.R1

Associated Types

type Corep R1 :: Type -> Type #

Methods

cotabulate :: (Corep R1 d -> c) -> R1 d c #

Choice R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

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

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

Closed R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

closed :: R1 a b -> R1 (x -> a) (x -> b) #

Scan R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

prefix1 :: a -> R1 a b -> R1 a b Source #

postfix1 :: R1 a b -> a -> R1 a b Source #

run1 :: a -> R1 a b -> b Source #

interspersing :: a -> R1 a b -> R1 a b Source #

AsRM1 R1 Source # 
Instance details

Defined in Data.Fold

Methods

asM1 :: R1 a b -> M1 a b Source #

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

Cosieve R1 NonEmpty Source # 
Instance details

Defined in Data.Fold.R1

Methods

cosieve :: R1 a b -> NonEmpty a -> b #

Monad (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

(>>=) :: R1 a a0 -> (a0 -> R1 a b) -> R1 a b #

(>>) :: R1 a a0 -> R1 a b -> R1 a b #

return :: a0 -> R1 a a0 #

Functor (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

fmap :: (a0 -> b) -> R1 a a0 -> R1 a b #

(<$) :: a0 -> R1 a b -> R1 a a0 #

MonadFix (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

mfix :: (a0 -> R1 a a0) -> R1 a a0 #

Applicative (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

pure :: a0 -> R1 a a0 #

(<*>) :: R1 a (a0 -> b) -> R1 a a0 -> R1 a b #

liftA2 :: (a0 -> b -> c) -> R1 a a0 -> R1 a b -> R1 a c #

(*>) :: R1 a a0 -> R1 a b -> R1 a b #

(<*) :: R1 a a0 -> R1 a b -> R1 a a0 #

Distributive (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

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

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

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

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

Representable (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Associated Types

type Rep (R1 a) #

Methods

tabulate :: (Rep (R1 a) -> a0) -> R1 a a0 #

index :: R1 a a0 -> Rep (R1 a) -> a0 #

MonadZip (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

mzip :: R1 a a0 -> R1 a b -> R1 a (a0, b) #

mzipWith :: (a0 -> b -> c) -> R1 a a0 -> R1 a b -> R1 a c #

munzip :: R1 a (a0, b) -> (R1 a a0, R1 a b) #

Apply (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

(<.>) :: R1 a (a0 -> b) -> R1 a a0 -> R1 a b #

(.>) :: R1 a a0 -> R1 a b -> R1 a b #

(<.) :: R1 a a0 -> R1 a b -> R1 a a0 #

liftF2 :: (a0 -> b -> c) -> R1 a a0 -> R1 a b -> R1 a c #

Pointed (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

point :: a0 -> R1 a a0 #

Category R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

id :: forall (a :: k). R1 a a #

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

Semigroupoid R1 Source # 
Instance details

Defined in Data.Fold.R1

Methods

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

MonadReader (NonEmpty a) (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

Methods

ask :: R1 a (NonEmpty a) #

local :: (NonEmpty a -> NonEmpty a) -> R1 a a0 -> R1 a a0 #

reader :: (NonEmpty a -> a0) -> R1 a a0 #

type Corep R1 Source # 
Instance details

Defined in Data.Fold.R1

type Rep (R1 a) Source # 
Instance details

Defined in Data.Fold.R1

type Rep (R1 a) = NonEmpty a