Ocaml abstract sytanx and pretty printer in scala