Use a nested hana struct to customize stuff inside user defined objects.
Use the nested hana struct to instantiate unary type classes.
Use the nested hana struct to define enabled operators.
Simplify datatype and enabled_operators implementations.