Library for creating tagged constructors.