open CicNotationEnv
open CicNotationPt
-let meta_names_of term =
+(* XXX ZACK: switched to CicNotationUtil.names_of_term, commented code below to
+ * be removes as soon as we believe implementation are equivalent *)
+(* let meta_names_of term =
let rec names = ref [] in
let add_name n =
if List.mem n !names then ()
| _ -> assert false
in
aux term ;
- !names
+ !names *)
let unopt_names names env =
let rec aux acc = function
| Ascription (term, name) -> assert false
and aux_magic env = function
| Default (some_pattern, none_pattern) ->
- (match meta_names_of some_pattern with
+ (match CicNotationUtil.names_of_term some_pattern with
| [] -> assert false (* some pattern must contain at least 1 name *)
| (name :: _) as names ->
(match lookup_value env name with
| Fold (`Left, base_pattern, names, rec_pattern) ->
let acc_name = List.hd names in (* names can't be empty, cfr. parser *)
let meta_names =
- List.filter ((<>) acc_name) (meta_names_of rec_pattern)
+ List.filter ((<>) acc_name)
+ (CicNotationUtil.names_of_term rec_pattern)
in
(match meta_names with
| [] -> assert false (* as above *)
| Fold (`Right, base_pattern, names, rec_pattern) ->
let acc_name = List.hd names in (* names can't be empty, cfr. parser *)
let meta_names =
- List.filter ((<>) acc_name) (meta_names_of rec_pattern)
+ List.filter ((<>) acc_name)
+ (CicNotationUtil.names_of_term rec_pattern)
in
(match meta_names with
| [] -> assert false (* as above *)