Writing reified MetaCoq terms by hand can get tedious sometimes, is there a placeholder of the type term
in MetaCoq that could be used for things that can be inferred by the type checker? And if it cannot be inferred then the unquoting would fail. I’m essentially looking for a reified version of _
. (I realize _
isn’t a term but a type checking convenience, but still)
I thought maybe tEvar
could be used for this but I couldn’t figure out how. The documentation doesn’t help much with tEvar
.
Idris has a way to achieve this. Idris has two equivalents of term
, one is called TT
, for typed core language terms, and Raw
, for unchecked core language terms. TT
has a constructor named Erased
and in Raw
you can do something like this: https://github.com/joom/hezarfen/blob/master/Hezarfen/Prover.idr#L8-L10
Agda has an unknown
constructor in their Term
type: https://agda.readthedocs.io/en/v2.6.0.1/language/reflection.html#terms