Newtype lifting and unlifting for arbitrary types in Purescript