take a look at _flatten/basics/src/main/scala/flatten/Part14.scala_ it suggest to use EitherT.apply i think maybe it should be OptionT.apply