ConstrainedType should be constructible by value of its underlying type
Added utils to detect whether class has explicit copy constructor