allow the '-' character in Enum; accelerate Union and Intersection - see https://gist.github.com/tobyink/71eab715ac16178cbcfb