Represent a location.
Either a: - no location. - location with data.
Using a TaggedAlgebraic to allow adding more types in the future.
Create either a noloc instance when passed null or a location.
Kind stored. Only use the payload when kind is "loc".
See Implementation
Represent a location.
Either a: - no location. - location with data.
Using a TaggedAlgebraic to allow adding more types in the future.