Declarations will look like: type Either[T, E] = case of Le: T of Ri: E Option[T] = case of Some: T of None: discard IfTree = object condition, thenPart, elsePart: Tree ProcTree = object fn: Tree args: seq[Tree] Tree = ref case of StrValue: string of IntValue: int of IfStmt: IfTree of ProcCall: ProcTree Run
What kind of pattern matching will be supported is not clear. However, the `let` and `var` annotations have fallen out of favor, instead the mutability will simply be derived from the expression that is matched.