genvar : type -> term
- genvar bool; > val it = `%%genvar%%1380` : term - genvar (Type`:num`); > val it = `%%genvar%%1381` : term
- mk_var("%%genvar%%1382",bool); > val it = `%%genvar%%1382` : term - genvar bool; > val it = `%%genvar%%1382` : term
This shortcoming could be guarded against, but it doesn’t seem worth it currently. It doesn’t seem to affect the soundness of the implementation of HOL; at worst, a proof procedure may fail because it doesn’t have a sufficiently fresh variable.