in general your repository functions will be wrapped in some monad, whether it's Reader/Maybe/List doesn't really matter as far as the for comprehension is concerned.
Works in Scala:
for {a <- Seq(Some(1), None, Some(3)); b <- a} yield b
Doesn't work in Haskell: do a <- [Just 1, Nothing, Just 3]; b <- a; return b