- List.map
- (function
- | Some (name, C.Decl t) ->
- Some (name, C.Decl (pack_coercion conjectures t))
- | Some (name, C.Def (t,None)) ->
- Some (name, C.Def (pack_coercion conjectures t, None))
- | Some (name, C.Def (t,Some ty)) ->
- Some (name, C.Def (pack_coercion conjectures t,
- Some (pack_coercion conjectures ty)))
- | None -> None)
- ctx
+ List.fold_right
+ (fun item ctx ->
+ let item' =
+ match item with
+ Some (name, C.Decl t) ->
+ Some (name, C.Decl (pack_coercion conjectures ctx t))
+ | Some (name, C.Def (t,None)) ->
+ Some (name,C.Def (pack_coercion conjectures ctx t,None))
+ | Some (name, C.Def (t,Some ty)) ->
+ Some (name, C.Def (pack_coercion conjectures ctx t,
+ Some (pack_coercion conjectures ctx ty)))
+ | None -> None
+ in
+ item'::ctx
+ ) ctx []