| Unit -> 1
| Top -> 1
| TConst c -> 1
- | Arrow (l, r) -> 1 + size_of_type l + size_of_type r
+ | Arrow _ -> 2
| Skip t -> size_of_type t
- | Forall (name, kind, typ) -> 1 + size_of_type typ
- | TAppl l -> List.fold_right (+) (List.map size_of_type l) 0
+ | Forall _ -> 2
+ | TAppl l -> 1
;;
type term =
let rec pp_obj status (uri,obj_kind) =
let pretty_print_context ctx =
- String.concat " " (List.rev
+ String.concat " " (List.rev (snd
(List.fold_right
- (fun (x,kind) l ->
+ (fun (x,kind) (l,res) ->
let x,l = x @:::l in
if size_of_kind kind > 1 then
- ("(" ^ x ^ " :: " ^ pretty_print_kind kind ^ ")")::l
+ x::l,("(" ^ x ^ " :: " ^ pretty_print_kind kind ^ ")")::res
else
- x::l)
- (HExtlib.filter_map (fun x -> x) ctx) []))
+ x::l,x::res)
+ (HExtlib.filter_map (fun x -> x) ctx) ([],[]))))
in
let namectx_of_ctx ctx =
List.fold_right (@::)