T5686.hs:4:29: Can't make a derived instance of ‛Functor U’: Constructor ‛U’ must use the type variable only as the last argument of a data type In the data declaration for ‛U’