Violating memory safety with Haskell's value restriction