Disambiguate hoisted union tags properly
An array may contain two nomnatively-equivalent types who are
structurally different -- so they need different (but related) union
tags since they will not share a type.
Hoist single-label enum into array
Split Union and Enum
Stop putting special case conditionals for Union#value.nil? everywhere
and just split the classes.
Encoding binary string as List Natural
Certainly better than an error, and gives the dhall side access to the
individual bytes.
Update handling of builtins
Always parse to a special value and not to variables.
Encode seperately.