Support for implementing semantic types