recursion-schemes-ix-0.1.0.0: Recursion schemes over indexed Functors
Safe HaskellNone
LanguageHaskell2010

Data.IFunctor.IFree

Synopsis

Documentation

data IFree f a ix Source #

Free IMonad

Constructors

IPure (a ix) 
IFree (f (IFree f a) ix) 

Instances

Instances details
IFunctor f => IFunctor (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

imap :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> b) -> IFree f a ~~> IFree f b Source #

IOrd f => IOrd (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

icompare :: forall (ix :: k0) a. SingI ix => (forall (ix :: k1). SingI ix => a ix -> a ix -> Ordering) -> IFree f a ix -> IFree f a ix -> Ordering Source #

IEq f => IEq (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

ieq :: forall (ix :: k0) a. SingI ix => (forall (ix :: k1). SingI ix => a ix -> a ix -> Bool) -> IFree f a ix -> IFree f a ix -> Bool Source #

IRead f => IRead (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

ireadPrec :: forall (ix :: k0) a. SingI ix => (forall (ix :: k1). SingI ix => ReadPrec (a ix)) -> ReadPrec (IFree f a ix) Source #

ireadsPrec :: forall (ix :: k0) a. SingI ix => (forall (ix :: k1). SingI ix => Int -> ReadS (a ix)) -> Int -> ReadS (IFree f a ix) Source #

IShow f => IShow (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

ishowsPrec :: forall (ix :: k0) a. SingI ix => (forall (ix :: k1). SingI ix => Int -> a ix -> ShowS) -> Int -> IFree f a ix -> ShowS Source #

ishow :: forall (ix :: k0) a. SingI ix => (forall (ix :: k1). SingI ix => Int -> a ix -> ShowS) -> IFree f a ix -> String Source #

ITraversable f => ITraversable (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

itraverse :: forall m (ix :: k0) a b. (Applicative m, SingI ix) => (forall (ix :: k1). SingI ix => a ix -> m (b ix)) -> IFree f a ix -> m (IFree f b ix) Source #

IFunctor f => IMonad (IFree f :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

ipure :: forall (a :: k0 -> Type). a ~~> IFree f a Source #

ijoin :: forall (a :: k0 -> Type). IFree f (IFree f a) ~~> IFree f a Source #

ibind :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> IFree f b) -> IFree f a ~~> IFree f b Source #

Generic1 (IFree f a :: k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

Associated Types

type Rep1 (IFree f a) :: k -> Type #

Methods

from1 :: forall (a0 :: k0). IFree f a a0 -> Rep1 (IFree f a) a0 #

to1 :: forall (a0 :: k0). Rep1 (IFree f a) a0 -> IFree f a a0 #

(IEq f, IEq2 a, SingI ix) => Eq (IFree f a ix) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

(==) :: IFree f a ix -> IFree f a ix -> Bool #

(/=) :: IFree f a ix -> IFree f a ix -> Bool #

(IOrd f, IOrd2 a, SingI ix) => Ord (IFree f a ix) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

compare :: IFree f a ix -> IFree f a ix -> Ordering #

(<) :: IFree f a ix -> IFree f a ix -> Bool #

(<=) :: IFree f a ix -> IFree f a ix -> Bool #

(>) :: IFree f a ix -> IFree f a ix -> Bool #

(>=) :: IFree f a ix -> IFree f a ix -> Bool #

max :: IFree f a ix -> IFree f a ix -> IFree f a ix #

min :: IFree f a ix -> IFree f a ix -> IFree f a ix #

(IRead f, IRead2 a, SingI ix) => Read (IFree f a ix) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

readsPrec :: Int -> ReadS (IFree f a ix) #

readList :: ReadS [IFree f a ix] #

readPrec :: ReadPrec (IFree f a ix) #

readListPrec :: ReadPrec [IFree f a ix] #

(IShow f, IShow2 a, SingI ix) => Show (IFree f a ix) Source # 
Instance details

Defined in Data.IFunctor.IFree

Methods

showsPrec :: Int -> IFree f a ix -> ShowS #

show :: IFree f a ix -> String #

showList :: [IFree f a ix] -> ShowS #

Generic (IFree f a ix) Source # 
Instance details

Defined in Data.IFunctor.IFree

Associated Types

type Rep (IFree f a ix) :: Type -> Type #

Methods

from :: IFree f a ix -> Rep (IFree f a ix) x #

to :: Rep (IFree f a ix) x -> IFree f a ix #

type Rep1 (IFree f a :: k -> Type) Source # 
Instance details

Defined in Data.IFunctor.IFree

type Rep1 (IFree f a :: k -> Type) = D1 ('MetaData "IFree" "Data.IFunctor.IFree" "recursion-schemes-ix-0.1.0.0-LBKNYYUUm79APWA4D6g9GS" 'False) (C1 ('MetaCons "IPure" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 a)) :+: C1 ('MetaCons "IFree" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (f (IFree f a)))))
type Rep (IFree f a ix) Source # 
Instance details

Defined in Data.IFunctor.IFree

type Rep (IFree f a ix) = D1 ('MetaData "IFree" "Data.IFunctor.IFree" "recursion-schemes-ix-0.1.0.0-LBKNYYUUm79APWA4D6g9GS" 'False) (C1 ('MetaCons "IPure" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a ix))) :+: C1 ('MetaCons "IFree" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (IFree f a) ix))))