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 #