let abbr s v w = Some (s, C.Def (v, w))
let pp_sort out = function
- | C.Type _ -> out "\Type"
- | C.Prop -> out "\Prop"
- | C.CProp _ -> out "\CProp"
- | C.Set -> out "\Set"
+ | C.Type _ -> out "*Type"
+ | C.Prop -> out "*Prop"
+ | C.CProp _ -> out "*CProp"
+ | C.Set -> out "*Set"
let pp_name out = function
| C.Name s -> out s
(* helper functions *********************************************************)
+let rec list_fold_right_cps g map l a =
+ match l with
+ | [] -> g a
+ | hd :: tl ->
+ let h a = map g hd a in
+ list_fold_right_cps h map tl a
+
+let rec list_fold_left_cps g map a = function
+ | [] -> g a
+ | hd :: tl ->
+ let h a = list_fold_left_cps g map a tl in
+ map h a hd
+
let rec list_map_cps g map = function
| [] -> g []
| hd :: tl ->