do-notation-for-effectful-copy-discard