<div dir="ltr">It's awkward to write a lambda to unwrap this kind of wrappers. I propose<div><br></div><div>newtype Down a = Down { getDown :: a }</div><div><br></div><div>with the Show/Read instances as if they didn't have named fields.</div><div><br></div><div>The same goes for Control.Arrow.ArrowMonad, although I'm not sure about its usefulness...</div></div>