- (==#), (<#), (<=#), (>=#), (>#),
-
- FastBool, fastBool, isFastTrue, fastOr, fastAnd
+ --quotRemFastInt is difficult because unboxed values can't
+ --be tupled, but unboxed tuples aren't portable. Just use
+ -- nuisance boxed quotRem and rely on optimization.
+ (==#), (/=#), (<#), (<=#), (>=#), (>#),
+ minFastInt, maxFastInt,
+ --prefer to distinguish operations, not types, between
+ --signed and unsigned.
+ --left-shift is the same for 'signed' and 'unsigned' numbers
+ shiftLFastInt,
+ --right-shift isn't the same for negative numbers (ones with
+ --the highest-order bit '1'). If you don't care because the
+ --number you're shifting is always nonnegative, use the '_' version
+ --which should just be the fastest one.
+ shiftR_FastInt,
+ --"L' = logical or unsigned shift; 'A' = arithmetic or signed shift
+ shiftRLFastInt, shiftRAFastInt,
+ bitAndFastInt, bitOrFastInt,
+ --add more operations to this file as you need them
+
+ --note, fastChr is "unsafe"Chr: it doesn't check for
+ --character values above the range of Unicode
+ FastChar, _CLIT, cBox, cUnbox, fastOrd, fastChr, eqFastChar,
+
+ FastPtr, pBox, pUnbox, castFastPtr