> It's not trying hard, just a simple check for a known, small, and
> rarely-changing list of primitive symbols.
To me, that's working very hard:
- extra code.
Only a tiny bit.
- extra maintenance
Negligible, because we rarely add new primitive types. A comment should be added to Ftype_of to also modify a static list of primitive types when adding a new type, but that should be it.
- extra run-time checks.
Minor concern. Emacs Lisp isn't C; we prefer to help the user over saving a couple of clock cycles.
- no benefit since this doesn't catch a common situation.
Catching uncommon situation is precisely the point of precondition checking.