Informing Haskell that `(Reverse (Reverse xs)) ~ xs` : <p>If <code>Reverse :: [k] -&gt; [k]</code> is a type family then Haskell cannot tell that <code>(Reverse (Reverse xs)) ~ xs</code>.  Is there a way to let the type system know this without any runtime cost?</p>

<p>I'm tempted to just use <code>unsafeCoerce</code>, but that seems a shame.</p>
