For that whole file, it seems that their is *a lot* of "x match { case Full(y) => f(y) match { case Full(z) => etc }}} with  a lot of error management along the way. 
Isn't it possible to write it in a cleaner way with for-loop?