Define types with optional constraints for use within axiom and other libraries
https://rubygems.org/gems/axiom-types