cubix
Safe HaskellNone
LanguageHaskell2010

Cubix.Sin.Compdata.Annotation

Documentation

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

Methods

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

Instances

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

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

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

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

getAnn :: forall a (f :: Node). Annotated a f => HFix f :=> a Source #

class Monad m => MonadAnnotater a (m :: Type -> Type) where Source #

Methods

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

Instances

Instances details
Default a => MonadAnnotater a AnnotateDefault Source #

Specializing annotation to Maybe a to aid instance selection

Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

(MonadAnnotater a m, MonadTrans t, Monad (t m)) => MonadAnnotater a (t m) Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

(Monad m, HasLabelGen s) => MonadAnnotater Label (StateT s m) Source # 
Instance details

Defined in Cubix.Language.Info

Methods

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

data AnnotateDefault x Source #

Instances

Instances details
Applicative AnnotateDefault Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Functor AnnotateDefault Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

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

Monad AnnotateDefault Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Default a => MonadAnnotater a AnnotateDefault Source #

Specializing annotation to Maybe a to aid instance selection

Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

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

runAnnotateDefault :: forall a (f :: Node) l. AnnotateDefault (AnnHFix a f l) -> AnnHFix a f l Source #

annotateM :: forall (f :: (Type -> Type) -> Type -> Type) a (m :: Type -> Type). (HTraversable f, MonadAnnotater a m) => CxtFunM m f (f :&: a) Source #

propAnnSigFun :: forall (f :: Fragment) (g :: Family -> Type -> Type) a. SigFun f g -> SigFun (f :&: a) (g :&: a) Source #

annotateOuter :: forall (f :: (Type -> Type) -> Type -> Type) a m l. (HTraversable f, MonadAnnotater a m) => Context f (AnnHFix a f) l -> m (AnnHFix a f l) Source #