momo-0.1.0.0: Modular module system
Safe HaskellSafe-Inferred
LanguageGHC2021

Momo.ModSyntax

Documentation

data Specification term Source #

Constructors

ValueSig Ident (Val term) 
TypeSig Ident (TypeDecl term) 
ModuleSig Ident (ModType term) 

Instances

Instances details
ShowTerm term => Show (Specification term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

showsPrec :: Int -> Specification term -> ShowS #

show :: Specification term -> String #

showList :: [Specification term] -> ShowS #

EqTerm term => Eq (Specification term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

(==) :: Specification term -> Specification term -> Bool #

(/=) :: Specification term -> Specification term -> Bool #

OrdTerm term => Ord (Specification term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

compare :: Specification term -> Specification term -> Ordering #

(<) :: Specification term -> Specification term -> Bool #

(<=) :: Specification term -> Specification term -> Bool #

(>) :: Specification term -> Specification term -> Bool #

(>=) :: Specification term -> Specification term -> Bool #

max :: Specification term -> Specification term -> Specification term #

min :: Specification term -> Specification term -> Specification term #

data ModType term Source #

Constructors

Signature [Specification term] 
FunctorType Ident (ModType term) (ModType term) 

Instances

Instances details
ShowTerm term => Show (ModType term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

showsPrec :: Int -> ModType term -> ShowS #

show :: ModType term -> String #

showList :: [ModType term] -> ShowS #

EqTerm term => Eq (ModType term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

(==) :: ModType term -> ModType term -> Bool #

(/=) :: ModType term -> ModType term -> Bool #

OrdTerm term => Ord (ModType term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

compare :: ModType term -> ModType term -> Ordering #

(<) :: ModType term -> ModType term -> Bool #

(<=) :: ModType term -> ModType term -> Bool #

(>) :: ModType term -> ModType term -> Bool #

(>=) :: ModType term -> ModType term -> Bool #

max :: ModType term -> ModType term -> ModType term #

min :: ModType term -> ModType term -> ModType term #

data TypeDecl term Source #

Constructors

TypeDecl 

Fields

Instances

Instances details
ShowTerm term => Show (TypeDecl term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

showsPrec :: Int -> TypeDecl term -> ShowS #

show :: TypeDecl term -> String #

showList :: [TypeDecl term] -> ShowS #

EqTerm term => Eq (TypeDecl term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

(==) :: TypeDecl term -> TypeDecl term -> Bool #

(/=) :: TypeDecl term -> TypeDecl term -> Bool #

OrdTerm term => Ord (TypeDecl term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

compare :: TypeDecl term -> TypeDecl term -> Ordering #

(<) :: TypeDecl term -> TypeDecl term -> Bool #

(<=) :: TypeDecl term -> TypeDecl term -> Bool #

(>) :: TypeDecl term -> TypeDecl term -> Bool #

(>=) :: TypeDecl term -> TypeDecl term -> Bool #

max :: TypeDecl term -> TypeDecl term -> TypeDecl term #

min :: TypeDecl term -> TypeDecl term -> TypeDecl term #

data Definition term Source #

Constructors

ValueStr Ident term 
TypeStr Ident (Kind term) (Def term) 
ModuleStr Ident (ModTerm term) 

Instances

Instances details
ShowTerm term => Show (Definition term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

showsPrec :: Int -> Definition term -> ShowS #

show :: Definition term -> String #

showList :: [Definition term] -> ShowS #

EqTerm term => Eq (Definition term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

(==) :: Definition term -> Definition term -> Bool #

(/=) :: Definition term -> Definition term -> Bool #

OrdTerm term => Ord (Definition term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

compare :: Definition term -> Definition term -> Ordering #

(<) :: Definition term -> Definition term -> Bool #

(<=) :: Definition term -> Definition term -> Bool #

(>) :: Definition term -> Definition term -> Bool #

(>=) :: Definition term -> Definition term -> Bool #

max :: Definition term -> Definition term -> Definition term #

min :: Definition term -> Definition term -> Definition term #

data ModTerm term Source #

Constructors

LongIdent Path 
Structure [Definition term] 
Functor Ident (ModType term) (ModTerm term) 
Apply (ModTerm term) (ModTerm term) 
Constraint (ModTerm term) (ModType term) 

Instances

Instances details
ShowTerm term => Show (ModTerm term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

showsPrec :: Int -> ModTerm term -> ShowS #

show :: ModTerm term -> String #

showList :: [ModTerm term] -> ShowS #

EqTerm term => Eq (ModTerm term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

(==) :: ModTerm term -> ModTerm term -> Bool #

(/=) :: ModTerm term -> ModTerm term -> Bool #

OrdTerm term => Ord (ModTerm term) Source # 
Instance details

Defined in Momo.ModSyntax

Methods

compare :: ModTerm term -> ModTerm term -> Ordering #

(<) :: ModTerm term -> ModTerm term -> Bool #

(<=) :: ModTerm term -> ModTerm term -> Bool #

(>) :: ModTerm term -> ModTerm term -> Bool #

(>=) :: ModTerm term -> ModTerm term -> Bool #

max :: ModTerm term -> ModTerm term -> ModTerm term #

min :: ModTerm term -> ModTerm term -> ModTerm term #

substTypeDecl :: forall term. CoreSyntax term => TypeDecl term -> Subst -> TypeDecl term Source #

substModType :: forall term. CoreSyntax term => ModType term -> Subst -> ModType term Source #