WITH k: key
SELECT FROM
integer => RETURN[Basics.LowHalf[k.ivalue]];
real => RETURN[Basics.HighHalf[LOOPHOLE[k.rvalue]]];
boolean => RETURN[LOOPHOLE[k.bvalue]];
name => RETURN[k.id.index];
string => RETURN[HashString[k]];
stream => RETURN[k.index];
command => RETURN[k.index];
ENDCASE => RETURN[0];