compositional-data-0.1.0.1: Compositional Data Types

Safe HaskellNone
LanguageHaskell2010

Data.Comp.Term

Documentation

data Cxt (h :: Bool) f a b i where Source #

Constructors

In :: f a (Cxt h f a b) i -> Cxt h f a b i 
Hole :: b i -> Cxt True f a b i 
Var :: a i -> Cxt h f a b i 
Instances
(Bifunctor (Dual (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type)) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) f, ShowH f) => ShowH (Cxt h f :: (k -> Type) -> (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.Comp.Term

Methods

showH :: Cxt h f Name (Const (Fresh [Char])) i -> Fresh [Char] Source #

EqH f => EqH (Cxt h f :: (k -> Type) -> (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Data.Comp.Term

Methods

eqH :: PEq a => Cxt h f Name a i -> Cxt h f Name a j -> Fresh Bool Source #

(EqH f, PEq a) => PEq (Cxt h f (Name :: k -> Type) a :: k -> Type) Source # 
Instance details

Defined in Data.Comp.Term

Methods

peq :: Cxt h f Name a i -> Cxt h f Name a j -> Fresh Bool Source #

Bifunctor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) f => Bifunctor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (Cxt h f :: (k1 -> Type) -> (k1 -> Type) -> k1 -> Type) Source # 
Instance details

Defined in Data.Comp.Term

Methods

bimap :: NT (->) aᵣ bᵣ -> NT (->) aₛ bₛ -> NT (->) (Cxt h f aᵣ aₛ) (Cxt h f bᵣ bₛ) #

Bifunctor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) f => Functor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) :: ((k1 -> Type) -> k1 -> Type) -> ((k1 -> Type) -> k1 -> Type) -> Type) (Cxt h f :: (k1 -> Type) -> (k1 -> Type) -> k1 -> Type) Source # 
Instance details

Defined in Data.Comp.Term

Methods

map :: NT (->) a b -> NT (NT (->)) (Cxt h f a) (Cxt h f b) #

Functor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (f a) => Functor (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k1 -> Type) -> (k1 -> Type) -> Type) (Cxt h f a :: (k1 -> Type) -> k1 -> Type) Source # 
Instance details

Defined in Data.Comp.Term

Methods

map :: NT (->) a0 b -> NT (->) (Cxt h f a a0) (Cxt h f a b) #

newtype Term f i Source #

Constructors

Term 

Fields

Instances
EqH f => Eq (Term f i) Source # 
Instance details

Defined in Data.Comp.Term

Methods

(==) :: Term f i -> Term f i -> Bool #

(/=) :: Term f i -> Term f i -> Bool #

(Bifunctor (Dual (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type)) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) (NT ((->) :: Type -> Type -> Type) :: (k -> Type) -> (k -> Type) -> Type) f, ShowH f) => Show (Term f i) Source # 
Instance details

Defined in Data.Comp.Term

Methods

showsPrec :: Int -> Term f i -> ShowS #

show :: Term f i -> String #

showList :: [Term f i] -> ShowS #

type Trm f a = Cxt False f a (Const ()) Source #

toCxt :: Bifunctor (Dual (NT (->))) (NT (->)) (NT (->)) f => Trm f a i -> Cxt h f a b i Source #