Bring over syntax changes for union types and type aliases
Bring in render implementation from elm-lang/Elm runtime/