ddc-core-0.4.3.1: Disciplined Disciple Compiler core language and type checker.

Safe HaskellSafe
LanguageHaskell98

DDC.Type.Transform.SpreadT

Documentation

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.

Instances

SpreadT TyCon Source # 

Methods

spreadT :: Ord n => TypeEnv n -> TyCon n -> TyCon n Source #

SpreadT TypeSum Source # 

Methods

spreadT :: Ord n => TypeEnv n -> TypeSum n -> TypeSum n Source #

SpreadT Type Source # 

Methods

spreadT :: Ord n => TypeEnv n -> Type n -> Type n Source #

SpreadT Bound Source # 

Methods

spreadT :: Ord n => TypeEnv n -> Bound n -> Bound n Source #

SpreadT Bind Source # 

Methods

spreadT :: Ord n => TypeEnv n -> Bind n -> Bind n Source #

SpreadT DataCtor Source # 

Methods

spreadT :: Ord n => TypeEnv n -> DataCtor n -> DataCtor n Source #

SpreadT DataType Source # 

Methods

spreadT :: Ord n => TypeEnv n -> DataType n -> DataType n Source #

SpreadT DataDefs Source # 

Methods

spreadT :: Ord n => TypeEnv n -> DataDefs n -> DataDefs n Source #

SpreadT DataDef Source # 

Methods

spreadT :: Ord n => TypeEnv n -> DataDef n -> DataDef n Source #