316 end; |
316 end; |
317 |
317 |
318 fun add_locale opn name expr body thy = |
318 fun add_locale opn name expr body thy = |
319 thy |
319 thy |
320 |> Locale.add_locale opn name expr body |
320 |> Locale.add_locale opn name expr body |
321 |> (fn (_, ctxt, thy) => (ctxt, thy)) |
321 |> (fn ((_, ctxt), thy) => (ctxt, thy)) |
322 ||>> `(fn thy => intro_incr thy name expr) |
322 ||>> `(fn thy => intro_incr thy name expr) |
323 |-> (fn (ctxt, intro) => pair ((Sign.full_name thy name, intro), ctxt)); |
323 |-> (fn (ctxt, intro) => pair ((Sign.full_name thy name, intro), ctxt)); |
324 |
324 |
325 fun add_locale_i opn name expr body thy = |
325 fun add_locale_i opn name expr body thy = |
326 thy |
326 thy |
327 |> Locale.add_locale_i opn name expr body |
327 |> Locale.add_locale_i opn name expr body |
328 |> (fn (_, ctxt, thy) => (ctxt, thy)) |
328 |> (fn ((_, ctxt), thy) => (ctxt, thy)) |
329 ||>> `(fn thy => intro_incr thy name expr) |
329 ||>> `(fn thy => intro_incr thy name expr) |
330 |-> (fn (ctxt, intro) => pair ((name, intro), ctxt)); |
330 |-> (fn (ctxt, intro) => pair ((name, intro), ctxt)); |
331 |
331 |
332 fun add_axclass_i (name, supsort) axs thy = |
332 fun add_axclass_i (name, supsort) axs thy = |
333 let |
333 let |