folds-0.7.8: Beautiful Folding
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Fold.R

Synopsis
  • data R a b = forall r. R (r -> b) (a -> r -> r) r

Documentation

data R a b Source #

right folds / a reversed Moore machine

Constructors

forall r. R (r -> b) (a -> r -> r) r 

Instances

Instances details
Profunctor R Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

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

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

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

Costrong R Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

Corepresentable R Source # 
Instance details

Defined in Data.Fold.R

Associated Types

type Corep R :: Type -> Type #

Methods

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

Choice R Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

Closed R Source # 
Instance details

Defined in Data.Fold.R

Methods

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

Folding R Source #

leaky prefix, efficient postfix

Instance details

Defined in Data.Fold.R

Methods

prefix :: Foldable t => t a -> R a b -> R a b Source #

prefixOf :: Fold s a -> s -> R a b -> R a b Source #

postfix :: Foldable t => R a b -> t a -> R a b Source #

postfixOf :: Fold s a -> R a b -> s -> R a b Source #

run :: Foldable t => t a -> R a b -> b Source #

runOf :: Fold s a -> s -> R a b -> b Source #

filtering :: (a -> Bool) -> R a b -> R a b Source #

Scan R Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

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

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

AsRM R Source #

We can convert from a lazy right fold to a monoidal fold

Instance details

Defined in Data.Fold

Methods

asM :: R a b -> M a b Source #

asR :: R a b -> R a b Source #

AsRM1 R Source # 
Instance details

Defined in Data.Fold

Methods

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

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

Cosieve R [] Source # 
Instance details

Defined in Data.Fold.R

Methods

cosieve :: R a b -> [a] -> b #

Monad (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

return :: a0 -> R a a0 #

Functor (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

MonadFix (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

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

Applicative (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

pure :: a0 -> R a a0 #

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

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

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

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

Distributive (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

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

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

Representable (R a) Source # 
Instance details

Defined in Data.Fold.R

Associated Types

type Rep (R a) #

Methods

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

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

MonadZip (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

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

Comonad (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

extract :: R a a0 -> a0 #

duplicate :: R a a0 -> R a (R a a0) #

extend :: (R a a0 -> b) -> R a a0 -> R a b #

ComonadApply (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

(<@>) :: R a (a0 -> b) -> R a a0 -> R a b #

(@>) :: R a a0 -> R a b -> R a b #

(<@) :: R a a0 -> R a b -> R a a0 #

Apply (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

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

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

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

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

Bind (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

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

join :: R a (R a a0) -> R a a0 #

Extend (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

duplicated :: R a a0 -> R a (R a a0) #

extended :: (R a a0 -> b) -> R a a0 -> R a b #

MonadReader [a] (R a) Source # 
Instance details

Defined in Data.Fold.R

Methods

ask :: R a [a] #

local :: ([a] -> [a]) -> R a a0 -> R a a0 #

reader :: ([a] -> a0) -> R a a0 #

type Corep R Source # 
Instance details

Defined in Data.Fold.R

type Corep R = []
type Rep (R a) Source # 
Instance details

Defined in Data.Fold.R

type Rep (R a) = [a]