liquidhaskell-0.8.10.1: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.Constraint.Env

Description

This module defines the representation for Environments needed during constraint generation.

Synopsis

Insert

(+++=) :: (CGEnv, String) -> (Symbol, CoreExpr, SpecType) -> CG CGEnv #

(+=) :: CGEnv -> (String, Symbol, SpecType) -> CG CGEnv #

addBinders :: CGEnv -> Symbol -> [(Symbol, SpecType)] -> CG CGEnv #

addSEnv :: CGEnv -> (String, Symbol, SpecType) -> CG CGEnv #

addEEnv :: CGEnv -> (Symbol, SpecType) -> CG CGEnv #

(-=) :: CGEnv -> Symbol -> CGEnv #

Construction

fromListREnv :: [(Symbol, SpecType)] -> [(Symbol, SpecType)] -> REnv #

toListREnv :: REnv -> [(Symbol, SpecType)] #

insertREnv :: Symbol -> SpecType -> REnv -> REnv #

Query

localBindsOfType :: RRType r -> REnv -> [Symbol] #

lookupREnv :: Symbol -> REnv -> Maybe SpecType #

(?=) :: (?callStack :: CallStack) => CGEnv -> Symbol -> Maybe SpecType #

Pruning refinements (TODO: move!)

rTypeSortedReft' :: (PPrint r, Reftable r, SubsTy RTyVar RSort r, Reftable (RTProp RTyCon RTyVar r)) => CGEnv -> Templates -> RRType r -> SortedReft #

Extend CGEnv

setRecs :: CGEnv -> [Var] -> CGEnv #

Lookup CGEnv