cubix-0.1.0.0: A framework for multi-language transformation
Safe HaskellNone
LanguageHaskell2010

Cubix.Sin.Compdata.Annotation

Documentation

class Annotated (f :: (* -> *) -> * -> *) a | f -> a where Source #

Methods

getAnn' :: f e l -> a Source #

Instances

Instances details
(Annotated f a, Annotated (Sum fs) a) => Annotated (Sum (f ': fs)) a Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

getAnn' :: forall (e :: Type -> Type) l. Sum (f ': fs) e l -> a Source #

Annotated (f :&: a) a Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

getAnn' :: forall (e :: Type -> Type) l. (f :&: a) e l -> a Source #

class Monad m => MonadAnnotater a m where Source #

Methods

annM :: forall f (e :: * -> *) l. f e l -> m ((f :&: a) e l) Source #

Instances

Instances details
(Monad m, MonadLabeler s m) => MonadAnnotater Label m Source # 
Instance details

Defined in Cubix.Language.Info

Methods

annM :: forall f (e :: Type -> Type) l. f e l -> m ((f :&: Label) e l) Source #

MonadAnnotater (Maybe a) (AnnotateDefault a) Source #

Specializing annotation to Maybe a to aid instance selection

Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

annM :: forall f (e :: Type -> Type) l. f e l -> AnnotateDefault a ((f :&: Maybe a) e l) Source #

data AnnotateDefault a x Source #

Instances

Instances details
Monad (AnnotateDefault a) Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

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

return :: a0 -> AnnotateDefault a a0 #

Functor (AnnotateDefault a) Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

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

Applicative (AnnotateDefault a) Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

pure :: a0 -> AnnotateDefault a a0 #

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

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

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

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

MonadAnnotater (Maybe a) (AnnotateDefault a) Source #

Specializing annotation to Maybe a to aid instance selection

Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

annM :: forall f (e :: Type -> Type) l. f e l -> AnnotateDefault a ((f :&: Maybe a) e l) Source #

propAnnSigFun :: SigFun f g -> SigFun (f :&: a) (g :&: a) Source #