type ** : Type -> Type -> Type
var a < c
var {a}: c -> d
class Monad < Type -> Type
type (a : Monad) t := t -> t
free type Term ::= Var Variable | Lam Variable Term | App Term Term
type WNet={(sys,i,o): T * T * T . i = o }
var a+ : Type
var - : Type
var []+ : Type
op a:? b
op a: ? b