Data.IFunctor.IFree
data IFree f a ix Source #
Free IMonad
Constructors
Defined in Data.IFunctor.IFree
Methods
imap :: forall (a :: k0 -> Type) (b :: k0 -> Type). (a ~~> b) -> IFree f a ~~> IFree f b Source #
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 :: 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 #
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 #
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 #
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 #
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 #
Associated Types
type Rep1 (IFree f a) :: k -> Type #
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 #
(==) :: IFree f a ix -> IFree f a ix -> Bool #
(/=) :: IFree f a ix -> IFree f a ix -> Bool #
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 #
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] #
showsPrec :: Int -> IFree f a ix -> ShowS #
show :: IFree f a ix -> String #
showList :: [IFree f a ix] -> ShowS #
type Rep (IFree f a ix) :: Type -> Type #
from :: IFree f a ix -> Rep (IFree f a ix) x #
to :: Rep (IFree f a ix) x -> IFree f a ix #