renamed Monads.scala