pire-0.2.5

Copyright(c) Andreas Reuleaux 2015 - 2018
LicenseBSD2
MaintainerAndreas Reuleaux <rx@a-rx.info>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

SSubst

Description

substitution on sizes

Documentation

type SSubst t = Map (SVar t) (Size t) Source #

class SSubstitutable t a where Source #

Minimal complete definition

sapply, fsv

Methods

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

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

Instances

Ord t => SSubstitutable t (Size t) Source # 

Methods

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

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

Ord t => SSubstitutable t (SScheme t) Source # 

Methods

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

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

Ord a => SSubstitutable a (Expr a a) Source # 

Methods

sapply :: SSubst a -> Expr a a -> Expr a a Source #

fsv :: Expr a a -> Set (SVar a) Source #

Ord t => SSubstitutable t (Term t t) Source # 

Methods

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

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

Ord t => SSubstitutable t (SEnv b t) Source # 

Methods

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

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

compose :: Ord t => SSubst t -> SSubst t -> SSubst t Source #

bind_ :: (MonadError (SizeError t) m, Ord t) => SVar t -> Size t -> m (SSubst t) Source #

bind :: (MonadError (SizeError t) m, Eq t, Ord t) => SVar t -> Size t -> m (SSubst t) Source #

occursCheck :: (SSubstitutable t a, Ord t) => SVar t -> a -> Bool Source #

occursIn :: Eq t => SVar t -> Size t -> Bool Source #