- | Pt.If (guard, p) ->
- let compiled_guard = compiler [guard, 0]
- and compiled_p = compiler [p, 0] in
- (fun term env ->
- match compiled_guard term with
- | None -> None
- | Some _ ->
- begin
- match compiled_p term with
- | None -> None
- | Some (env', _) ->
- Some (env' @ env)
- end)
-
- | Pt.Unless (guard, p) ->
- let compiled_guard = compiler [guard, 0]
- and compiled_p = compiler [p, 0] in
+ | Pt.If (p_test, p_true, p_false) ->
+ let compiled_test = compiler [p_test, 0]
+ and compiled_true = compiler [p_true, 0]
+ and compiled_false = compiler [p_false, 0] in