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

Safe HaskellSafe
LanguageHaskell98

DDC.Core.Transform.SpreadX

Documentation

class SpreadX c where Source #

Minimal complete definition

spreadX

Methods

spreadX :: forall n. Ord n => Env n -> Env n -> c n -> c n Source #

Spread type annotations from binders and the environment into bound occurrences of variables and constructors.

Also convert Bounds to UPrim form if the environment says that they are primitive.

Instances

SpreadX Bound Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Bound n -> Bound n Source #

SpreadX Bind Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Bind n -> Bind n Source #

SpreadX WiCon Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> WiCon n -> WiCon n Source #

SpreadX Pat Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Pat n -> Pat n Source #

SpreadX (Witness a) Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Witness a n -> Witness a n Source #

SpreadX (Cast a) Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Cast a n -> Cast a n Source #

SpreadX (Alt a) Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Alt a n -> Alt a n Source #

SpreadX (Lets a) Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Lets a n -> Lets a n Source #

SpreadX (Exp a) Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Exp a n -> Exp a n Source #

SpreadX (Module a) Source # 

Methods

spreadX :: Ord n => Env n -> Env n -> Module a n -> Module a n Source #