seqn-0.1.1.0: Sequences and measured sequences
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Seqn.Internal.Util

Description

This is an internal module. You probably don't need to import this. Use Data.Seqn.Seq, Data.Seqn.MSeq, or Data.Seqn.PQueue instead.

The only reason to use this module is to use the constructs defined here with other internal modules.

Documentation

class Bifunctor p => Biapplicative p where Source #

Methods

bipure :: a -> b -> p a b Source #

biliftA2 :: (a -> b -> c) -> (d -> e -> f) -> p a d -> p b e -> p c f Source #

Instances

Instances details
Biapplicative S2 Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

bipure :: a -> b -> S2 a b Source #

biliftA2 :: (a -> b -> c) -> (d -> e -> f) -> S2 a d -> S2 b e -> S2 c f Source #

Biapplicative Tagged Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

bipure :: a -> b -> Tagged a b Source #

biliftA2 :: (a -> b -> c) -> (d -> e -> f) -> Tagged a d -> Tagged b e -> Tagged c f Source #

Biapplicative (Const :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

bipure :: a -> b -> Const a b Source #

biliftA2 :: (a -> b -> c) -> (d -> e -> f) -> Const a d -> Const b e -> Const c f Source #

data S2 a b Source #

Constructors

S2 !a !b 

Instances

Instances details
Bifunctor S2 Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

bimap :: (a -> b) -> (c -> d) -> S2 a c -> S2 b d #

first :: (a -> b) -> S2 a c -> S2 b c #

second :: (b -> c) -> S2 a b -> S2 a c #

Biapplicative S2 Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

bipure :: a -> b -> S2 a b Source #

biliftA2 :: (a -> b -> c) -> (d -> e -> f) -> S2 a d -> S2 b e -> S2 c f Source #

Functor (S2 a) Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

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

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

data S3 a b c Source #

Constructors

S3 !a !b !c 

data SMaybe a Source #

Constructors

SNothing 
SJust !a 

newtype Tagged a b Source #

Constructors

Tagged 

Fields

Instances

Instances details
Bifunctor Tagged Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

bimap :: (a -> b) -> (c -> d) -> Tagged a c -> Tagged b d #

first :: (a -> b) -> Tagged a c -> Tagged b c #

second :: (b -> c) -> Tagged a b -> Tagged a c #

Biapplicative Tagged Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

bipure :: a -> b -> Tagged a b Source #

biliftA2 :: (a -> b -> c) -> (d -> e -> f) -> Tagged a d -> Tagged b e -> Tagged c f Source #

Functor (Tagged a) Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

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

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

newtype SStateT s m a Source #

Constructors

SStateT 

Fields

Instances

Instances details
Monad m => Applicative (SStateT s m) Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

pure :: a -> SStateT s m a #

(<*>) :: SStateT s m (a -> b) -> SStateT s m a -> SStateT s m b #

liftA2 :: (a -> b -> c) -> SStateT s m a -> SStateT s m b -> SStateT s m c #

(*>) :: SStateT s m a -> SStateT s m b -> SStateT s m b #

(<*) :: SStateT s m a -> SStateT s m b -> SStateT s m a #

Functor m => Functor (SStateT s m) Source # 
Instance details

Defined in Data.Seqn.Internal.Util

Methods

fmap :: (a -> b) -> SStateT s m a -> SStateT s m b #

(<$) :: a -> SStateT s m b -> SStateT s m a #

evalSStateT :: Functor m => SStateT s m a -> s -> m a Source #

sState :: (s -> S2 s a) -> SState s a Source #

evalSState :: SState s a -> s -> a Source #

(#.) :: Coercible b c => (b -> c) -> (a -> b) -> a -> c infixr 9 Source #