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.