with Not_found -> raise_loc loc (UnboundId (id, Env.mem id env.ids)));
exp loc (Fv.singleton id) (Typed.Var id)
| cu, id ->
let cu = find_cu (U.mk cu) env in
let id = ident id in
let t =
try find_value_global cu id env
with Not_found ->
raise_loc loc (UnboundExtId (cu,id) ) in
exp loc Fv.empty (Typed.ExtVar (cu, id, t))
*)
andabstractionenvloca=
letiface=
...
...
@@ -1154,11 +1165,11 @@ and branches env b =
letbranch(p,e)=
letcur_br=!cur_branchin
cur_branch:=[];
letp'=patenvpin
letfvp=Patterns.fvp'in
letenv'=enter_values_dummyfvpenvin
let(fv2,e)=exprenv'nolocein
letbr_loc=merge_locp.loce.Typed.exp_locin
letploc=p.locin
letp=patenvpin
letfvp=Patterns.fvpin
let(fv2,e)=expr(enter_values_dummyfvpenv)nolocein
letbr_loc=merge_locploce.Typed.exp_locin
(matchFv.pick(Fv.difffvpfv2)with
|None->()
|Somex->
...
...
@@ -1168,13 +1179,13 @@ and branches env b =
" is declared in the pattern but not used in the body of this branch. It might be a misspelled or undeclared type or name (if it isn't, use _ instead)."));