Checksums

`>>= fun () -> Lwt.return ()` is a no-op (actually it's the right-identity monad law: `m >>= fun v -> return v` equals `m`).