C.Variable (varname, varbody, vartype) -> (varname, varbody, vartype)
| _ -> raise (WrongUriToVariable (U.string_of_uri var))
in
- cookrec (add_binder (C.Name varname) varbody vartype
- (cook curi cookingsno var ty)) tl
+ let cooked_once =
+ add_binder (C.Name varname) varbody vartype
+ (match varbody with
+ Some _ -> ty
+ | None -> cook curi cookingsno var ty
+ )
+ in
+ cookrec cooked_once tl
| _ -> ty
in
cookrec ty vars