| 567 |
let (fv1,e) = expr loc e |
let (fv1,e) = expr loc e |
| 568 |
and (fv2,b) = branches b in |
and (fv2,b) = branches b in |
| 569 |
exp loc (Fv.cup fv1 fv2) (Typed.Map (e, b)) |
exp loc (Fv.cup fv1 fv2) (Typed.Map (e, b)) |
| 570 |
| Ttree (e,b) -> |
| Xtrans (e,b) -> |
| 571 |
let b = b @ [ mknoloc (Internal Types.any), MatchFail ] in |
let b = b @ [ mknoloc (Internal Types.any), MatchFail ] in |
| 572 |
let (fv1,e) = expr loc e |
let (fv1,e) = expr loc e |
| 573 |
and (fv2,b) = branches b in |
and (fv2,b) = branches b in |
| 574 |
exp loc (Fv.cup fv1 fv2) (Typed.Ttree (e, b)) |
exp loc (Fv.cup fv1 fv2) (Typed.Xtrans (e, b)) |
| 575 |
| MatchFail -> |
| MatchFail -> |
| 576 |
exp loc (Fv.empty) Typed.MatchFail |
exp loc (Fv.empty) Typed.MatchFail |
| 577 |
| Try (e,b) -> |
| Try (e,b) -> |
| 837 |
| Op (op, el) -> |
| Op (op, el) -> |
| 838 |
let args = List.map (fun e -> (e.exp_loc, compute_type env e)) el in |
let args = List.map (fun e -> (e.exp_loc, compute_type env e)) el in |
| 839 |
type_op loc op args |
type_op loc op args |
| 840 |
| Ttree (e,b) -> |
| Xtrans (e,b) -> |
| 841 |
let t = type_check env e Sequence.any true in |
let t = type_check env e Sequence.any true in |
| 842 |
let r = |
let r = |
| 843 |
Sequence.map_tree |
Sequence.map_tree |