pire-0.2.5

Safe HaskellNone
LanguageHaskell2010

SEnv

Description

aka "size env"

Documentation

data SScheme t Source #

Constructors

Forall [SVar t] (Size t) 
Instances
Ord t => SSubstitutable t (SScheme t) Source # 
Instance details

Defined in SEnv

Methods

sapply :: SSubst t -> SScheme t -> SScheme t Source #

fsv :: SScheme t -> Set (SVar t) Source #

Eq t => Eq (SScheme t) Source # 
Instance details

Defined in SEnv

Methods

(==) :: SScheme t -> SScheme t -> Bool #

(/=) :: SScheme t -> SScheme t -> Bool #

Ord t => Ord (SScheme t) Source # 
Instance details

Defined in SEnv

Methods

compare :: SScheme t -> SScheme t -> Ordering #

(<) :: SScheme t -> SScheme t -> Bool #

(<=) :: SScheme t -> SScheme t -> Bool #

(>) :: SScheme t -> SScheme t -> Bool #

(>=) :: SScheme t -> SScheme t -> Bool #

max :: SScheme t -> SScheme t -> SScheme t #

min :: SScheme t -> SScheme t -> SScheme t #

Show t => Show (SScheme t) Source # 
Instance details

Defined in SEnv

Methods

showsPrec :: Int -> SScheme t -> ShowS #

show :: SScheme t -> String #

showList :: [SScheme t] -> ShowS #

newtype SEnv b t Source #

Constructors

SEnv (Map b (SScheme t)) 
Instances
Ord t => SSubstitutable t (SEnv b t) Source # 
Instance details

Defined in SEnv

Methods

sapply :: SSubst t -> SEnv b t -> SEnv b t Source #

fsv :: SEnv b t -> Set (SVar t) Source #

(Show b, Show t) => Show (SEnv b t) Source # 
Instance details

Defined in SEnv

Methods

showsPrec :: Int -> SEnv b t -> ShowS #

show :: SEnv b t -> String #

showList :: [SEnv b t] -> ShowS #

Pretty (SEnv String String) # 
Instance details

Defined in PrettySEnv

Methods

pretty :: SEnv String String -> Doc ann #

prettyList :: [SEnv String String] -> Doc ann #

Pretty (SEnv Text Text) # 
Instance details

Defined in PrettySEnv

Methods

pretty :: SEnv Text Text -> Doc ann #

prettyList :: [SEnv Text Text] -> Doc ann #

type Ctx t a = Map a (Size t) Source #

extend :: Ord t => SEnv t t -> (t, SScheme t) -> SEnv t t Source #

cextend :: Ord a => Ctx t a -> (a, Size t) -> Ctx t a Source #

lookupSEnv :: (Show t, Ord t, Pretty t, Data t, MonadError (SizeError t) m, MonadState Unique m, Letters t) => SEnv t t -> t -> m (SSubst t, Size t) Source #

_lookup :: (Ord t, Pretty t, MonadError (SizeError t) m, MonadState Unique m, Letters t) => t -> SEnv t t -> m (Size t) Source #

lookup_ :: (MonadError (SizeError t) m, Ord a, Pretty a) => a -> Ctx t a -> m (Size t) Source #

initenv :: (MonadError (SizeError t) m, Ord t, IsString t, Pretty t) => SEnv t t -> t -> m (SEnv t t) Source #

initmap :: (Ord a, IsString a, MonadError (SizeError t1) m, Pretty a) => Map a (Size t2) -> a -> m (Map a (Size t2)) Source #

sapplym :: SSubstitutable t b => SSubst t -> Map k b -> Map k b Source #

fsvm :: (Ord t, SSubstitutable t a) => Map k a -> Set (SVar t) Source #

sgeneralize :: Ord t => SEnv t t -> Size t -> SScheme t Source #

sizestr :: (IsString t, Semigroup t) => Size t -> t Source #

adjust :: Size a1 -> Size a2 -> Size a2 Source #