Adding Union Types and Type Guards to Language Specification

Fixed in #905.