My opinion is that vl-sort-i function is correct - integer is smaller than real, (7<7.0) so Lee's code wins...
M.R.
Not too sure I follow. AFAICT:
Command: (< 7.0 7)
nil
Command: (< 7 7.0)
nil
Command: (= 7 7.0)
T
Thus to me it seems that the order of equal items is the defining factor.
All I can think of to support your claim is that an integer uses less bits in RAM to store the same number.
Anyhow, the vl-sort doesn't actually do what you think. The quick-sort algorithm doesn't order equal items in any particular order. It's one of it's drawbacks. Thus if the list order was slightly different, the vl-sort idea could give a different result.
Edit: Obviously that's splitting hairs though. In this case the OP does state that the list contains only integers, so this idea is moot anyway.