-- | Traits of inference monads. module Hyper.Class.Infer.Env ( LocalScopeType(..) ) where -- | @LocalScopeType var scheme m@ represents that -- @m@ maintains a scope mapping variables of type @var@ -- to type schemes of type @scheme@. -- -- Used by the 'Hyper.Class.Infer.Infer' instances -- of 'Hyper.Type.AST.Lam.Lam' and 'Hyper.Type.AST.Let.Let'. class LocalScopeType var scheme m where -- | Add a variable type into an action's scope localScopeType :: var -> scheme -> m a -> m a