liquidhaskell-0.8.0.2: Liquid Types for Haskell

Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.Constraint.Fresh

Synopsis

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 # 

Methods

fresh :: m Symbol Source #

true :: Symbol -> m Symbol Source #

refresh :: Symbol -> m Symbol Source #

Freshable CG Integer Source # 
(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 #

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

freshTy_type :: KVKind -> CoreExpr -> Type -> CG SpecType Source #

Generation: Freshness -----------------------------------------------------

Right now, we generate NO new pvars. Rather than clutter code with uRType calls, put it in one place where the above invariant is obviously enforced. Constraint generation should ONLY use freshTy_type and freshTy_expr

addKuts :: PPrint a => a -> SpecType -> CG () Source #