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