Fergus Henderson wrote:

>         equal x y = unsafePerformIO $ do
>                 ptrEq <- ptrEqual x y
>                 return (ptrEq || deep_equals x y)
>
> Note that unlike `req', `equal' here _is_ referentially transparent.

No, it's not.  If x and y are both bottom you can get unexpected
results, i.e., sometimes it terminates, sometimes it doesn't.


--

        -- Lennart





Reply via email to