definitely not java without semis... applicative functors actually
val itemsOpt:Result[Traversable[EOB_item]] = Result.traverse(items map (_.reportErrors)) (eobOpt <*> itemsOpt) flatMap save.tupled
This is production code.
val itemsOpt:Result[Traversable[EOB_item]] = Result.traverse(items map (_.reportErrors)) (eobOpt <*> itemsOpt) flatMap save.tupled