let ty,_ = CicTypeChecker.type_of_aux' [] context s CicUniv.oblivion_ugraph in
"(let " ^ ppname b ^ " = " ^ pp ~in_type:false s context ^ " in " ^
pp ~in_type t ((Some (b,Cic.Def (s,Some ty)))::context) ^ ")"
+ | C.Appl (he::tl) when in_type ->
+ let hes = pp ~in_type he context in
+ let stl = String.concat "," (clean_args_for_ty context tl) in
+ (if stl = "" then "" else "(" ^ stl ^ ") ") ^ hes
| C.Appl (C.MutInd _ as he::tl) ->
let hes = pp ~in_type he context in
let stl = String.concat "," (clean_args_for_ty context tl) in
let abstr,args =
args (nparams - 1) ((Some (n,Cic.Decl s))::context) t in
abstr,pp ~in_type:true current_module_uri s context::args
+ | `Sort _ when nparams <= 0 ->
+ let n = Cic.Name "unit (* EXISTENTIAL TYPE *)" in
+ args (nparams - 1) ((Some (n,Cic.Decl s))::context) t
| `Sort _ ->
let n =
match n with