Если Reverse :: [k] -> [k] - это семейство типов, то Haskell не может сказать, что (Reverse (Reverse xs)) ~ xs. Есть ли способ, чтобы система типов знала об этом без каких-либо затрат времени выполнения?
У меня возникает соблазн просто использовать unsafeCoerce, но это кажется позором.