A value type constructor is a class that requires parameters (like a template or a a generics) to give you a specific value type. Java, doesn't really support that well. You can use generics, but much of what you might want to express can't be handled using this. Basic functionality like known from Pascal is still missing. For example, you can't express ranges like
you can't do subsets, and you can barely do enums now.