folds-0.7.1: Beautiful Folding

Safe HaskellTrustworthy
LanguageHaskell98

Data.Fold.R1

Synopsis

Documentation

data R1 a b Source

A reversed Mealy machine

Constructors

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

Instances

Arrow R1 Source 

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 

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

Corepresentable R1 Source 

Associated Types

type Corep (R1 :: * -> * -> *) :: * -> *

Methods

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

Profunctor R1 Source 

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

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

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

Choice R1 Source 

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 

Methods

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

Strong R1 Source 

Methods

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

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

Costrong R1 Source 

Methods

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

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

Scan R1 Source 

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 

Methods

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

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

Category * R1 Source 

Methods

id :: R1 a a

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

Cosieve R1 NonEmpty Source 

Methods

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

Semigroupoid * R1 Source 

Methods

o :: R1 j k1 -> R1 i j -> R1 i k1

Monad (R1 a) Source 

Methods

(>>=) :: R1 a b -> (b -> R1 a c) -> R1 a c

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

return :: b -> R1 a b

fail :: String -> R1 a b

Functor (R1 a) Source 

Methods

fmap :: (b -> c) -> R1 a b -> R1 a c

(<$) :: b -> R1 a c -> R1 a b

MonadFix (R1 a) Source 

Methods

mfix :: (b -> R1 a b) -> R1 a b

Applicative (R1 a) Source 

Methods

pure :: b -> R1 a b

(<*>) :: R1 a (b -> c) -> R1 a b -> R1 a c

(*>) :: R1 a b -> R1 a c -> R1 a c

(<*) :: R1 a b -> R1 a c -> R1 a b

Distributive (R1 a) Source 

Methods

distribute :: Functor f => f (R1 a b) -> R1 a (f b)

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

distributeM :: Monad m => m (R1 a b) -> R1 a (m b)

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

Representable (R1 a) Source 

Associated Types

type Rep (R1 a :: * -> *) :: *

Methods

tabulate :: (Rep (R1 a) -> b) -> R1 a b

index :: R1 a b -> Rep (R1 a) -> b

MonadZip (R1 a) Source 

Methods

mzip :: R1 a b -> R1 a c -> R1 a (b, c)

mzipWith :: (b -> c -> d) -> R1 a b -> R1 a c -> R1 a d

munzip :: R1 a (b, c) -> (R1 a b, R1 a c)

Pointed (R1 a) Source 

Methods

point :: b -> R1 a b

Apply (R1 a) Source 

Methods

(<.>) :: R1 a (b -> c) -> R1 a b -> R1 a c

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

(<.) :: R1 a b -> R1 a c -> R1 a b

MonadReader (NonEmpty a) (R1 a) Source 

Methods

ask :: R1 a (NonEmpty a)

local :: (NonEmpty a -> NonEmpty a) -> R1 a b -> R1 a b

reader :: (NonEmpty a -> b) -> R1 a b

type Corep R1 = NonEmpty Source 
type Rep (R1 a) = NonEmpty a Source