| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
UVMHS.Lib.Substitution
Synopsis
- data Name = Name {}
- nameMarkL :: Name ⟢ 𝑂 ℕ64
- nameNameL :: Name ⟢ 𝕊
- mkName :: 𝕊 -> Name
- gensymName :: (Monad m, MonadState s m) => (s ⟢ ℕ64) -> 𝕊 -> m Name
- syntaxName :: LexerBasicSyntax
- pName :: CParser TokenBasic Name
- pNameWS :: CParser TokenWSBasic Name
- newtype DVar = DVar {}
- unDVarL :: DVar ⟢ ℕ64
- syntaxDVar :: LexerBasicSyntax
- pDVarTail :: CParser TokenBasic DVar
- pDVar :: CParser TokenBasic DVar
- data NVar = NVar {}
- nvarIndexL :: NVar ⟢ DVar
- nvarNameL :: NVar ⟢ Name
- nvar_Name :: Name -> NVar
- name_NVarL :: NVar ⌲ Name
- gensymNVar :: (Monad m, MonadState s m) => (s ⟢ ℕ64) -> 𝕊 -> m NVar
- syntaxNVar :: LexerBasicSyntax
- pNVarTail :: Name -> CParser TokenBasic NVar
- pNVar :: CParser TokenBasic NVar
- newtype GVar = GVar {}
- unGVarL :: GVar ⟢ Name
- syntaxGVar :: LexerBasicSyntax
- pGVarTail :: Name -> CParser TokenBasic GVar
- pGVar :: CParser TokenBasic GVar
- data MVar s e = MVar {}
- mvarSubstL :: MVar s e ⟢ Subst s e
- mvarNameL :: MVar s e ⟢ Name
- wfMVar :: Ord s => MVar s e -> 𝔹
- canonMVar :: (Ord s, Eq e, Substy s e e) => (e -> e) -> MVar s e -> MVar s e
- substMVar :: (Ord s, Substy s e e) => Subst s e -> MVar s e -> MVar s e
- syntaxMVar :: LexerBasicSyntax
- pMVarTail :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> Name -> CParser TokenBasic (MVar () e)
- pMVar :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> CParser TokenBasic (MVar () e)
- data SVar
- d_SVarL :: SVar ⌲ DVar
- n_SVarL :: SVar ⌲ NVar
- mkSVar :: SName -> DVar -> SVar
- svarName :: SVar -> SName
- svarLevel :: SVar -> DVar
- svar_Name :: Name -> SVar
- data Var
- d_VarL :: Var ⌲ DVar
- n_VarL :: Var ⌲ NVar
- g_VarL :: Var ⌲ GVar
- var_Name :: Name -> Var
- var_SVar :: SVar -> Var
- name_VarL :: Var ⌲ Name
- gensymVar :: (Monad m, MonadState s m) => (s ⟢ ℕ64) -> 𝕊 -> m Var
- syntaxVar :: LexerBasicSyntax
- pVar :: CParser TokenBasic Var
- data UVar s e
- d_UVarL :: UVar s e ⌲ DVar
- n_UVarL :: UVar s e ⌲ NVar
- g_UVarL :: UVar s e ⌲ GVar
- m_UVarL :: UVar s e ⌲ MVar s e
- name_UVarL :: UVar s e ⌲ Name
- uvar_Name :: Name -> UVar s e
- uvar_SVar :: SVar -> UVar s e
- svar_UVarL :: UVar s e ⌲ SVar
- uvar_Var :: Var -> UVar s e
- var_UVarL :: UVar s e ⌲ Var
- gensymUVar :: (Monad m, MonadState s m) => (s ⟢ ℕ64) -> 𝕊 -> m (UVar s e)
- wfUVar :: Ord s => UVar s e -> 𝔹
- canonUVar :: (Ord s, Eq e, Substy s e e) => (e -> e) -> UVar s e -> UVar s e
- syntaxUVar :: LexerBasicSyntax
- pUVar :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> CParser TokenBasic (UVar () e)
- class SVarView s e | e -> s where
- svarScopeL :: SVarView s e => s -> SName -> e ⌲ DVar
- data Subst s e
- isNullSubst :: Ord s => Subst s e -> 𝔹
- wfSubst :: Ord s => Subst s e -> 𝔹
- canonSubst :: (Ord s, Eq e, Substy s e e) => (e -> e) -> Subst s e -> Subst s e
- syntaxSubst :: LexerBasicSyntax
- pSubst :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> CParser TokenBasic (Subst () e)
- dshiftsSubst :: Ord s => (s ⇰ ℕ64) -> Subst s e -> Subst s e
- dshiftSubst :: Ord s => s -> ℕ64 -> Subst s e -> Subst s e
- dintrosSubst :: Ord s => (s ⇰ ℕ64) -> Subst s e
- dintroSubst :: Ord s => s -> ℕ64 -> Subst s e
- dbindsSubst :: Ord s => (s ⇰ 𝕍 e) -> Subst s e
- dbindSubst :: Ord s => s -> e -> Subst s e
- nshiftsSubst :: Ord s => (s ⇰ (Name ⇰ ℕ64)) -> Subst s e -> Subst s e
- nshiftSubst :: Ord s => s -> Name -> ℕ64 -> Subst s e -> Subst s e
- nintrosSubst :: Ord s => (s ⇰ (Name ⇰ ℕ64)) -> Subst s e
- nintroSubst :: Ord s => s -> Name -> ℕ64 -> Subst s e
- nbindsSubst :: Ord s => (s ⇰ (Name ⇰ 𝕍 e)) -> Subst s e
- nbindSubst :: Ord s => s -> Name -> e -> Subst s e
- gbindsSubst :: Ord s => (s ⇰ (Name ⇰ e)) -> Subst s e
- gbindSubst :: Ord s => s -> Name -> e -> Subst s e
- data MetaSubst s e
- mbindsSubst :: Ord s => (s ⇰ (Name ⇰ e)) -> MetaSubst s e
- mbindSubst :: Ord s => s -> Name -> e -> MetaSubst s e
- data SubstyM s e a
- class SVarView s e => Substy s e a | a -> e, e -> s where
- substyDBdr :: (Ord s, Ord e) => s -> SubstyM s e ()
- substyNBdr :: (Ord s, Ord e) => s -> Name -> SubstyM s e ()
- substyBdr :: (Ord s, Ord e, Substy s e e) => s -> (SVar -> e) -> Name -> SubstyM s e ()
- substyDVar :: (Ord s, Ord e, Substy s e e) => (DVar -> e) -> s -> DVar -> SubstyM s e e
- substyNVar :: (Ord s, Ord e, Substy s e e) => (NVar -> e) -> s -> NVar -> SubstyM s e e
- substyGVar :: (Ord s, Ord e, Substy s e e) => (GVar -> e) -> s -> GVar -> SubstyM s e e
- substySVar :: (Ord s, Ord e, Substy s e e) => (SVar -> e) -> s -> SVar -> SubstyM s e e
- substyVar :: (Ord s, Ord e, Pretty e, Pretty s, Substy s e e) => (Var -> e) -> s -> Var -> SubstyM s e e
- substyMVar :: (Ord s, Ord e, Pretty e, Pretty s, Substy s e e) => (MVar s e -> e) -> s -> MVar s e -> SubstyM s e e
- substyUVar :: (Ord s, Ord e, Pretty e, Pretty s, Substy s e e) => (UVar s e -> e) -> s -> UVar s e -> SubstyM s e e
- fvssWith :: Substy s e a => (s -> UVar s e -> 𝔹) -> a -> s ⇰ 𝑃 (UVar s e)
- fvsWith :: (Ord s, Substy s e a) => s -> (UVar s e -> 𝔹) -> a -> 𝑃 (UVar s e)
- fvss :: Substy s e a => a -> s ⇰ 𝑃 (UVar s e)
- fvs :: (Ord s, Substy s e a) => s -> a -> 𝑃 (UVar s e)
- fvssMetas :: (Ord s, Ord e, Substy s e a) => a -> s ⇰ 𝑃 (MVar s e)
- fvsMetas :: (Ord s, Ord e, Substy s e a) => s -> a -> 𝑃 (MVar s e)
- todbr :: Substy s e a => a -> 𝑂 a
- tonmd :: Substy s e a => a -> 𝑂 a
- subst :: Substy s e a => Subst s e -> a -> 𝑂 a
- msubst :: Substy s e a => MetaSubst s e -> a -> 𝑂 a
Names
gensymName :: (Monad m, MonadState s m) => (s ⟢ ℕ64) -> 𝕊 -> m Name Source #
Individual Variable Types
gensymNVar :: (Monad m, MonadState s m) => (s ⟢ ℕ64) -> 𝕊 -> m NVar Source #
Instances
| (Lift s, Lift e) => Lift (MVar s e :: Type) Source # | |
| Functor (MVar s) Source # | |
| (Show s, Show e) => Show (MVar s e) Source # | |
| (Eq s, Eq e) => Eq (MVar s e) Source # | |
| (Ord s, Ord e) => Ord (MVar s e) Source # | |
Defined in UVMHS.Lib.Substitution.UVar | |
| (Ord s, Fuzzy s, Fuzzy e) => Fuzzy (MVar s e) Source # | |
| (Ord s, Pretty s, Pretty e) => Pretty (MVar s e) Source # | |
| (Ord s, Shrinky e) => Shrinky (MVar s e) Source # | |
pMVarTail :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> Name -> CParser TokenBasic (MVar () e) Source #
pMVar :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> CParser TokenBasic (MVar () e) Source #
Combined Variable Types
Instances
| (Lift s, Lift e) => Lift (UVar s e :: Type) Source # | |
| Functor (UVar s) Source # | |
| (Show s, Show e) => Show (UVar s e) Source # | |
| (Eq s, Eq e) => Eq (UVar s e) Source # | |
| (Ord s, Ord e) => Ord (UVar s e) Source # | |
Defined in UVMHS.Lib.Substitution.UVar | |
| (Pretty e, Pretty s, Ord s, Fuzzy s, Fuzzy e) => Fuzzy (UVar s e) Source # | |
| (Pretty DVar, Pretty NVar, Pretty GVar, Pretty (MVar s e)) => Pretty (UVar s e) Source # | |
| (Ord s, Shrinky e) => Shrinky (UVar s e) Source # | |
| (Ord s, Ord e) => MonadWriter (s ⇰ 𝑃 (UVar s e)) (SubstyM s e) Source # | |
gensymUVar :: (Monad m, MonadState s m) => (s ⟢ ℕ64) -> 𝕊 -> m (UVar s e) Source #
pUVar :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> CParser TokenBasic (UVar () e) Source #
Variable Lens Classes
De Bruijn, Named and Global and Substitutions
Instances
| (Lift s, Lift e) => Lift (Subst s e :: Type) Source # | |
| Functor (Subst s) Source # | |
| (Show s, Show e) => Show (Subst s e) Source # | |
| (Eq s, Eq e) => Eq (Subst s e) Source # | |
| (Ord s, Ord e) => Ord (Subst s e) Source # | |
| (Ord s, Substy s e e) => Append (Subst s e) Source # | |
| (Ord s, Substy s e e) => Monoid (Subst s e) Source # | |
Defined in UVMHS.Lib.Substitution.Substy | |
| Null (Subst s e) Source # | |
Defined in UVMHS.Lib.Substitution.Substy | |
| (Ord s, Fuzzy s, Fuzzy e) => Fuzzy (Subst s e) Source # | |
| (Ord s, Pretty s, Pretty e) => Pretty (Subst s e) Source # | |
| (Ord s, Shrinky e) => Shrinky (Subst s e) Source # | |
pSubst :: (Eq e, Substy () e e) => (() -> CParser TokenBasic e) -> CParser TokenBasic (Subst () e) Source #
dbindSubst :: Ord s => s -> e -> Subst s e Source #
Metavar Substitutions
Instances
| (Show s, Show e) => Show (MetaSubst s e) Source # | |
| (Eq s, Eq e) => Eq (MetaSubst s e) Source # | |
| (Ord s, Ord e) => Ord (MetaSubst s e) Source # | |
Defined in UVMHS.Lib.Substitution.Subst Methods compare :: MetaSubst s e -> MetaSubst s e -> Ordering # (<) :: MetaSubst s e -> MetaSubst s e -> Bool # (<=) :: MetaSubst s e -> MetaSubst s e -> Bool # (>) :: MetaSubst s e -> MetaSubst s e -> Bool # (>=) :: MetaSubst s e -> MetaSubst s e -> Bool # | |
| (Ord s, Fuzzy s, Fuzzy e) => Fuzzy (MetaSubst s e) Source # | |
| (Pretty s, Pretty e) => Pretty (MetaSubst s e) Source # | |
| (Ord s, Shrinky e) => Shrinky (MetaSubst s e) Source # | |
Substy Interface
Instances
| (Ord s, Ord e) => MonadFail (SubstyM s e :: Type -> Type) Source # | |
| Bind (SubstyM s e) Source # | |
| Functor (SubstyM s e) Source # | |
| Monad (SubstyM s e) Source # | |
Defined in UVMHS.Lib.Substitution.Substy | |
| Return (SubstyM s e) Source # | |
Defined in UVMHS.Lib.Substitution.Substy | |
| (Ord s, Ord e) => MonadUCont (SubstyM s e) Source # | |
| (Ord s, Ord e) => MonadReader (SubstyAction s e) (SubstyM s e) Source # | |
Defined in UVMHS.Lib.Substitution.Substy | |
| (Ord s, Ord e) => MonadWriter (s ⇰ 𝑃 (UVar s e)) (SubstyM s e) Source # | |
substyVar :: (Ord s, Ord e, Pretty e, Pretty s, Substy s e e) => (Var -> e) -> s -> Var -> SubstyM s e e Source #
substyMVar :: (Ord s, Ord e, Pretty e, Pretty s, Substy s e e) => (MVar s e -> e) -> s -> MVar s e -> SubstyM s e e Source #