liquidhaskell-boot-0.9.2.5.0: Liquid Types for Haskell
Safe HaskellSafe-Inferred
LanguageHaskell98

Language.Haskell.Liquid.Bare.DataType

Synopsis

Documentation

dataConMap :: [DataDecl] -> DataConMap Source #

DataConMap stores the names of those ctor-fields that have been declared as SMT ADTs so we don't make up new names for them.

Names for accessing Data Constuctors

makeDataConChecker :: DataCon -> Symbol Source #

'makeDataConChecker d' creates the measure for `is$d` which tests whether a given value was created by d. e.g. is$Nil or is$Cons.

makeDataConSelector :: Maybe DataConMap -> DataCon -> Int -> Symbol Source #

'makeDataConSelector d' creates the selector `select$d$i` which projects the i-th field of a constructed value. e.g. `select$Cons$1` and `select$Cons$2` are respectively equivalent to head and tail.

addClassEmbeds :: Maybe [ClsInst] -> [TyCon] -> TCEmb TyCon -> TCEmb TyCon Source #

makeClassEmbeds: sort-embeddings for numeric, and family-instance tycons

Constructors

makeConTypes :: ModName -> Env -> [(ModName, BareSpec)] -> Lookup ([(ModName, TyConP, Maybe DataPropDecl)], [[Located DataConP]]) Source #

Bare Predicate: DataCon Definitions ---------------------------------------