Scalaで、FutureやOptionやListがネストしてしまったときに、いい感じに変換する方法

Optionで説明してますが、ListやEitherでも同じはずです。とりあえずsequenceとjoinで、どんなにネストしていても、大概変換できるはず?
*1


*1:パフォーマンスとか、sequenceの呼び出し順による、細かい動作の違いとかはあれですが。もし似たような感じで困ったら、聞いて下さい