packages feed

hgom-0.5.1: examples/example.gom

module Definition
imports String int
abstract syntax

Input = Input(ctx: Context, cl: ConstraintList, t: Term, ty: Type)

// comment

Type = Atom(name: String)
     | Composed(dom: TypeList, codom: Type)

TypeList = TyList(Type*)

Term = Var(name: /* comment */ String)
     | Fun(name: String, args: TermList)

TermList = TeList(Term*)

Constraint = Subtype(type1: String, type2: String)

ConstraintList = CList(Constraint*)

Jugement = SigOf(name: String, sig: Type)

Mapping = TypeOf(term: Term, sig: Type)
   
Context = Context(Jugement*)

Statement = Statement1(name: String, path: PathTree, ctx: Context, consequence1: Mapping)
          | Statement2(name: String, path: PathTree, ctx: Context, consequence2: Constraint)

Tree = SList(Statement*)

Label = Label(num: int)

PathTree = PTree(Label*)

Paths = Paths(PathTree*)