Here are some type constructors:
type T0 = Type type I0 :: T0 -> T0 data I0 x = I0 { getI0 :: x } type K0 :: T0 -> (T0 -> T0) data K0 x y = K0 { ge