ddc-core-0.4.3.1: Disciplined Disciple Compiler core language and type checker.
DDC.Type.Transform.SpreadT
class SpreadT c where Source #
Minimal complete definition
spreadT
Methods
spreadT :: forall n. Ord n => TypeEnv n -> c n -> c n Source #
Rewrite UName bounds to UPrim bounds and attach their types. Primitives have their types attached because they are so common in the language, their types are closed, and we don't want to keep having to look them up from the environment.
UName
UPrim
Instances
spreadT :: Ord n => TypeEnv n -> TyCon n -> TyCon n Source #
spreadT :: Ord n => TypeEnv n -> TypeSum n -> TypeSum n Source #
spreadT :: Ord n => TypeEnv n -> Type n -> Type n Source #
spreadT :: Ord n => TypeEnv n -> Bound n -> Bound n Source #
spreadT :: Ord n => TypeEnv n -> Bind n -> Bind n Source #
spreadT :: Ord n => TypeEnv n -> DataCtor n -> DataCtor n Source #
spreadT :: Ord n => TypeEnv n -> DataType n -> DataType n Source #
spreadT :: Ord n => TypeEnv n -> DataDefs n -> DataDefs n Source #
spreadT :: Ord n => TypeEnv n -> DataDef n -> DataDef n Source #