Use metalogic to generate meta term anti-quotations
The idea is for the Very_Deep_Interpretation
to source the shallow material,
and then update the checking and elaboration functions
of the term anti-quotations.
To achieve this, the mechanism of removing and readding the notations
(mixfixes) of the term-antiquotations after the metalogic
is sourced is used.
Example:
With shallow:
datatype "typ" = ISA_typ string ("@{typ _}")
Generate a datatype whose Constructor ISA_typ has
the notation @{typ ...}.
You get:
find_consts name:"ISA_typ"
find_consts
name: "ISA_typ"
found 1 constant(s):
Shallow_Interpretation.typ.ISA_typ :: "char list ⇒ typ"
With Deep:
no_notation "ISA_typ" ("@{typ _}")
consts ISA_typ :: "string ⇒ typ" ("@{typ _}")
The notation is removed and then added to the new ISA_typ constant.
You get:
find_consts name:"ISA_typ"
find_consts
name: "ISA_typ"
found 2 constant(s):
Deep_Interpretation.ISA_typ :: "char list ⇒ Core.typ"
Shallow_Interpretation.typ.ISA_typ :: "char list ⇒ Shallow_Interpretation.typ"
But only the Deep_Interpretation constant has the notation (mixfix).
Then new interpretation of term anti-quotations is available
for the user.