Judgement = Term Term = Var | "fun" Var "->" Term | Term Term | "shift" Var "->" Term | "<" Term ">" | "(" Term ")" Type = Var | Type "/" Type "->" Type "/" Type | "(" Type ")" Var = variable starting with a lower case letter | metavariable starting with an upper case letter Env = Var | Var ":" Type "," Env | "(" Env ")"