IBanshee Syntax
---------------

ident            : [A-Z a-z]([A-Z a-z 0-9 _])*
integers (i)     : [0-9]+

Variables (v)    : '{ident}
Constructors (c) : {ident}
Labels (l)       : {ident}
Names (n)        : {ident}

Expressions (e)  : v | c | n | c(e1,...,en) | e1 && e2 | e1 || e2
                 | <l1=e1,...,ln=en [| e]> | 0:s | 1:s | _:s
                 | pat(c,i,e) | proj(c,i,e) | ( e ) | c^-i(e)

sorts            : basesort | row(basesort)

basesort         : setIF | term

Var decl         : v : sort
Constructor decl : c(s1,...,sn) : basesort
Name decl        : n = e 
Sig (s)          : + sort | - sort | = sort

Constraints      : e1 <= e2 | e1 == e2

Commands : !help 
           !tlb e
           !ecr e
           !undo [i]
           !trace [i]
           !quit
           !save filename
           !load filename
           !run filename
	   !exit

