OCaml Parser combinator library as powerful as fastparse(Scala)?

As an example you can take a mini-C where you have stmts and expressions and function definitions, but an expression can also be a lambda.

like parsing: if (x == 1) { return (lambda () { return x +1; }); } else { return 0; }
With an AST like:
type expr = Literal of int | Plus of expr * expr | Lambda (string list * stmt)
and stmt = Return of expr | ExprStmt of expr | If of (expr * stmt * stmt) | Assign of string * expr

so just 2 mutually recursive parser combinators.