EXTEND Pcaml.expr: AFTER "apply" [[ e1 = SELF; e2 = SELF -> match e1 with [ <:expr< fun $x$ -> $e$>> -> <:expr< (let $x$ = $e2$ in $e$)>> | _ -> match Pa_o.constr_expr_arity _loc e1 with [ 1 -> <:expr< $e1$ $e2$ >> | _ -> match e2 with [ <:expr< ( $list:el$ ) >> -> List.fold_left (fun e1 e2 -> <:expr< $e1$ $e2$ >>) e1 el | _ -> <:expr< $e1$ $e2$ >> ] ] ]]]; END;