liquidhaskell-0.8.2.4: Liquid Types for Haskell

Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.Types.Fresh

Documentation

class (Applicative m, Monad m) => Freshable m a where Source #

Minimal complete definition

fresh

Methods

fresh :: m a Source #

true :: a -> m a Source #

refresh :: a -> m a Source #

Instances

Freshable m Integer => Freshable m Strata Source # 
Freshable m Integer => Freshable m RReft Source # 
(Freshable m Integer, Monad m, Applicative m) => Freshable m Reft Source # 

Methods

fresh :: m Reft Source #

true :: Reft -> m Reft Source #

refresh :: Reft -> m Reft Source #

(Freshable m Integer, Monad m, Applicative m) => Freshable m Expr Source # 

Methods

fresh :: m Expr Source #

true :: Expr -> m Expr Source #

refresh :: Expr -> m Expr Source #

(Freshable m Integer, Monad m, Applicative m) => Freshable m Symbol Source # 
Freshable BareM Integer Source #
NOTE:Family-Instance-Environment
For some reason, the usual lookup machinery (lookupGhcThing) refuses to properly lookup _imported_ names of family-instance data-constructors. e.g. see testsposExactGADT8.hs and testsposExactGADT9.hs; inside the latter, the lookupGhcThing fails to resolve the name of BlobXVal (but it works just fine when BlobXVal is a plain DataCon as in testsposExactGADT8a.hs To get around this hassle, we also save a map from _family instance_ DataCon-names to the corresponding family instance Tycon in the famEnv field of BareEnv. This map is *created* inside the function FIXME, and *used* inside the function FIXME.
(Freshable m Integer, Freshable m r, Reftable r) => Freshable m (RRType r) Source # 

Methods

fresh :: m (RRType r) Source #

true :: RRType r -> m (RRType r) Source #

refresh :: RRType r -> m (RRType r) Source #

(Freshable m Integer, Monad m, Applicative m) => Freshable m [Expr] Source # 

Methods

fresh :: m [Expr] Source #

true :: [Expr] -> m [Expr] Source #

refresh :: [Expr] -> m [Expr] Source #

refreshTy :: FreshM m => SpecType -> m SpecType Source #

refreshVV :: FreshM m => SpecType -> m SpecType Source #

refreshArgs :: FreshM m => SpecType -> m SpecType Source #

refreshHoles :: (Symbolic t, Reftable r, TyConable c, Freshable f r) => [(t, RType c tv r)] -> f ([Symbol], [(t, RType c tv r)]) Source #

refreshArgsSub :: FreshM m => SpecType -> m (SpecType, Subst) Source #