Вы, вероятно, хотите проверить scalaz ; На него сильно повлиял Хаскелл. Действительно, одного из главных участников часто спрашивают, почему они не просто используют Haskell, как им, похоже, так нравится!
Скалаз активно использует имплициты, чтобы украсить сооружения своими монадами. Например:
val fibs = (0, 1).iterate[Stream]( i => i._2 -> (i._2 + i._1) ).map(_._1)
println( fibs.take(10) )