liquidhaskell-0.8.10.1: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.Constraint.Types

Synopsis

Constraint Generation Monad

type CG = State CGInfo #

Constraint information

data CGInfo #

Generation: Types ---------------------------------------------------------

Constructors

CGInfo 

Fields

Instances

Instances details
NFData CGInfo # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

rnf :: CGInfo -> () #

PPrint CGInfo # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

pprintTidy :: Tidy -> CGInfo -> Doc #

pprintPrec :: Int -> Tidy -> CGInfo -> Doc #

Freshable CG Integer #

This is all hardwiring stuff to CG ----------------------------------------

Instance details

Defined in Language.Haskell.Liquid.Constraint.Fresh

Constraint Generation Environment

data CGEnv #

Constructors

CGE 

Fields

Instances

Instances details
Show CGEnv # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

showsPrec :: Int -> CGEnv -> ShowS #

show :: CGEnv -> String #

showList :: [CGEnv] -> ShowS #

NFData CGEnv # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

rnf :: CGEnv -> () #

PPrint CGEnv # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

pprintTidy :: Tidy -> CGEnv -> Doc #

pprintPrec :: Int -> Tidy -> CGEnv -> Doc #

HasConfig CGEnv # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

getConfig :: CGEnv -> Config #

Logical constraints (FIXME: related to bounds?)

Fixpoint environment

data FEnv #

Fixpoint Environment ------------------------------------------------------

Constructors

FE 

Fields

  • feBinds :: !IBindEnv

    Integer Keys for Fixpoint Environment

  • feEnv :: !(SEnv Sort)

    Fixpoint Environment

  • feIdEnv :: !(SEnv BindId)

    Map from Symbol to current BindId

Instances

Instances details
NFData FEnv # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

rnf :: FEnv -> () #

initFEnv :: [(Symbol, Sort)] -> FEnv #

insertsFEnv :: FEnv -> [((Symbol, Sort), BindId)] -> FEnv #

Hole Environment

data HEnv #

Helper Types: HEnv --------------------------------------------------------

fromListHEnv :: [Symbol] -> HEnv #

elemHEnv :: Symbol -> HEnv -> Bool #

Subtyping Constraints

data SubC #

Subtyping Constraints -----------------------------------------------------

Constructors

SubC 

Fields

SubR 

Fields

Instances

Instances details
NFData SubC # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

rnf :: SubC -> () #

PPrint SubC # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

pprintTidy :: Tidy -> SubC -> Doc #

pprintPrec :: Int -> Tidy -> SubC -> Doc #

type FixSubC = SubC Cinfo #

Well-formedness Constraints

data WfC #

Constructors

WfC !CGEnv !SpecType 

Instances

Instances details
NFData WfC # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

rnf :: WfC -> () #

PPrint WfC # 
Instance details

Defined in Language.Haskell.Liquid.Constraint.Types

Methods

pprintTidy :: Tidy -> WfC -> Doc #

pprintPrec :: Int -> Tidy -> WfC -> Doc #

type FixWfC = WfC Cinfo #

Invariants

type RTyConInv = HashMap RTyCon [RInv] #

Aliases?

type RTyConIAl = HashMap RTyCon [RInv] #

getTemplates :: CG Templates #