(fun e ctx -> e::ctx) ctx perforate metasenv t
in
let rec curryfy ctx = function
+ | NCic.Lambda (name, (NCic.Sort _ as s), tgt) ->
+ NCic.Lambda (name, s, curryfy ((name,NCic.Decl s) :: ctx) tgt)
| NCic.Lambda (name, s, tgt) ->
let tgt = curryfy ((name,NCic.Decl s) :: ctx) tgt in
NCic.Lambda (name, NCic.Implicit `Type, tgt)