let bind m ~f =
    let next = f m.result in
    { next with more_things_todo = next.more_things_todo @ m.more_things_todo}