Safe Haskell | None |
---|---|
Language | Haskell2010 |
- class ModuleFor src ss s where
- importModules :: PathMod -> Modules src ss -> Imports NameTe
- newtype Modules src ss = Modules {}
- unionModules :: Modules src ss -> Modules src ss -> Either Error_Module (Modules src ss)
- unionModulesUnchecked :: Modules src ss -> Modules src ss -> Modules src ss
- data Error_Module
- type Module src ss = ByFixity (ModuleFixy src ss Unifix) (ModuleFixy src ss Infix) (ModuleFixy src ss Unifix)
- moduleEmpty :: Module src ss
- moduleWhere :: forall src ss. Source src => PathMod -> [DefTerm src ss] -> (PathMod, Module src ss)
- type ModuleFixy src ss fixy = Map NameTe (Tokenizer src ss fixy)
- data Tokenizer src ss fixy = Tokenizer {
- token_fixity :: fixy
- token_term :: src -> Token_Term src ss
- type AST_Term src ss = BinTree (Token_Term src ss)
- data Token_Term src ss
- = Token_Term (TermAVT src ss)
- | Token_TermVT (TermVT src ss '[])
- | Token_Term_Abst src NameTe (AST_Type src) (AST_Term src ss)
- | Token_Term_Var src NameTe
- | Token_Term_Let src NameTe (AST_Term src ss) (AST_Term src ss)
- | Token_Term_App src
- newtype NameTe = NameTe Name
- type ModulesInj src ss = ModulesInjR src ss ss
- modulesInj :: forall src ss. ModulesInj src ss => Either Error_Module (Modules src ss)
- class ModulesInjR src ss rs where
- data DefTerm src ss = (:=) (WithFixity NameTe) (forall ts. Term src ss ts vs t)
- lookupDefTerm :: forall src ss fixy. Fixy (ModuleFixy src ss Unifix) (ModuleFixy src ss Infix) (ModuleFixy src ss Unifix) (ModuleFixy src ss fixy) -> Imports NameTe -> Mod NameTe -> Modules src ss -> Either Error_Module (Tokenizer src ss fixy)
- deleteDefTerm :: Mod NameTe -> Modules src ss -> Modules src ss
- deleteDefTermInfix :: Mod NameTe -> Modules src ss -> Modules src ss
- deleteDefTermPrefix :: Mod NameTe -> Modules src ss -> Modules src ss
- deleteDefTermPostix :: Mod NameTe -> Modules src ss -> Modules src ss
- insertDefTerm :: forall src ss. Source src => Mod (DefTerm src ss) -> Modules src ss -> Modules src ss
- insertTermVT :: forall src ss. Source src => Mod (TermVT src ss '[]) -> NameTe -> Fixity -> Modules src ss -> Modules src ss
- insertFixity :: (forall fx. fx -> ModuleFixy src ss fx -> ModuleFixy src ss fx) -> Fixity -> Module src ss -> Module src ss
Class ModuleFor
Type Modules
unionModules :: Modules src ss -> Modules src ss -> Either Error_Module (Modules src ss) Source #
Type Error_Module
data Error_Module Source #
Type Module
type Module src ss = ByFixity (ModuleFixy src ss Unifix) (ModuleFixy src ss Infix) (ModuleFixy src ss Unifix) Source #
moduleEmpty :: Module src ss Source #
moduleWhere :: forall src ss. Source src => PathMod -> [DefTerm src ss] -> (PathMod, Module src ss) Source #
Type ModuleFixy
Type Tokenizer
data Tokenizer src ss fixy Source #
Tokenizer | |
|
Type AST_Term
type AST_Term src ss = BinTree (Token_Term src ss) Source #
Abstract Syntax Tree of Token_Term
.
Type Token_Term
data Token_Term src ss Source #
Token_Term (TermAVT src ss) | |
Token_TermVT (TermVT src ss '[]) | |
Token_Term_Abst src NameTe (AST_Type src) (AST_Term src ss) | |
Token_Term_Var src NameTe | |
Token_Term_Let src NameTe (AST_Term src ss) (AST_Term src ss) | |
Token_Term_App src |
Type NameTe
Class ModulesInj
type ModulesInj src ss = ModulesInjR src ss ss Source #
modulesInj :: forall src ss. ModulesInj src ss => Either Error_Module (Modules src ss) Source #
Class ModulesInjR
class ModulesInjR src ss rs where Source #
modulesInjR :: Either Error_Module (Modules src ss) Source #
ModulesInjR src ss ([] *) Source # | |
(ModuleFor k src ss s, ModulesInjR src ss rs) => ModulesInjR src ss ((:) * (Proxy k s) rs) Source # | |
Type DefTerm
lookupDefTerm :: forall src ss fixy. Fixy (ModuleFixy src ss Unifix) (ModuleFixy src ss Infix) (ModuleFixy src ss Unifix) (ModuleFixy src ss fixy) -> Imports NameTe -> Mod NameTe -> Modules src ss -> Either Error_Module (Tokenizer src ss fixy) Source #
insertDefTerm :: forall src ss. Source src => Mod (DefTerm src ss) -> Modules src ss -> Modules src ss Source #
insertTermVT :: forall src ss. Source src => Mod (TermVT src ss '[]) -> NameTe -> Fixity -> Modules src ss -> Modules src ss Source #
insertFixity :: (forall fx. fx -> ModuleFixy src ss fx -> ModuleFixy src ss fx) -> Fixity -> Module src ss -> Module src ss Source #