248 let |
248 let |
249 val thy = Context.theory_of generic; |
249 val thy = Context.theory_of generic; |
250 val ctxt = Context.proof_of generic; |
250 val ctxt = Context.proof_of generic; |
251 |
251 |
252 val (type_insts, term_insts) = List.partition (is_tvar o fst) (map snd mixed_insts); |
252 val (type_insts, term_insts) = List.partition (is_tvar o fst) (map snd mixed_insts); |
253 val internal_insts = term_insts |> List.mapPartial |
253 val internal_insts = term_insts |> map_filter |
254 (fn (xi, Args.Term t) => SOME (xi, t) |
254 (fn (xi, Args.Term t) => SOME (xi, t) |
255 | (_, Args.Name _) => NONE |
255 | (_, Args.Name _) => NONE |
256 | (xi, _) => error_var "Term argument expected for " xi); |
256 | (xi, _) => error_var "Term argument expected for " xi); |
257 val external_insts = term_insts |> List.mapPartial |
257 val external_insts = term_insts |> map_filter |
258 (fn (xi, Args.Name s) => SOME (xi, s) | _ => NONE); |
258 (fn (xi, Args.Name s) => SOME (xi, s) | _ => NONE); |
259 |
259 |
260 |
260 |
261 (* type instantiations *) |
261 (* type instantiations *) |
262 |
262 |