| 14 |
type tpat = Patterns.node |
type tpat = Patterns.node |
| 15 |
type ttyp = Types.node |
type ttyp = Types.node |
| 16 |
|
|
| 17 |
type texpr = { exp_loc : Location.loc; |
type texpr = { exp_loc : loc; |
| 18 |
mutable exp_typ : Types.descr; |
mutable exp_typ : Types.descr; |
| 19 |
exp_descr : texpr'; |
exp_descr : texpr'; |
| 20 |
} |
} |
| 36 |
|
|
| 37 |
and abstr = { |
and abstr = { |
| 38 |
fun_name : string option; |
fun_name : string option; |
| 39 |
fun_iface : (ttyp * ttyp) list; |
fun_iface : (Types.descr * Types.descr) list; |
| 40 |
fun_body : branches; |
fun_body : branches; |
| 41 |
fun_typ : Types.descr; |
fun_typ : Types.descr; |
| 42 |
fun_fv : string list; |
fun_fv : string list; |
| 43 |
} |
} |
| 44 |
|
|
| 45 |
and branches = branch list |
and branches = { |
| 46 |
and branch = |
mutable br_typ : Types.descr; |
| 47 |
{ mutable br_used : bool; |
br_branches: branch list |
| 48 |
mutable br_typ : Types.descr; (* TODO: move to branches and update *) |
} |
| 49 |
|
and branch = { |
| 50 |
|
mutable br_used : bool; |
| 51 |
br_pat : tpat; |
br_pat : tpat; |
| 52 |
br_body : texpr } |
br_body : texpr |
| 53 |
|
} |
| 54 |
|
|
| 55 |
and op = string |
and op = string |
| 56 |
|
|