.
Monad Option
Alternative Option
We should use `OptionM` instead. `Option` still implements `Functor` and `OrElse`. cc @Kha
Issue #305 was fixed by previous commits submitted today for problems exposed by the `for in` notation based on typeclasses :) closes #305