title: What is the difference between `then`, `and_then` and `or_else` in Rust futures?
body: <p>I am learning to use Rust futures and I am finding it extremely confusing. I feel like I am being stupid but when would <code>then</code>, <code>and_then</code> and <code>or_else</code> be used? What return types are expected? </p>
  
  <p>Please provide some examples of the different situations you would expect to see them.</p>