Oh, that boolean returning 3? ""==var==3...
cool
DEF TEST OUT X 'OUT variables start as untyped READ X ENDor
IF 0 THEN DIM A[0] 'arrays are untyped until the DIM is executed, and if it's skipped, the var stays untyped READ ASo you can easily make a function that reads any type of data:
DEF READ_ANY OUT IS_STRING,NUM,STR IF 0 THEN DIM A[0] READ A IF (A||0)==3 THEN 'Bug: || returns 3 when first arg is a string (a safer way to check might be (A*0 && A*0==A*0) or something STR=A:NUM=0:IS_STRING=#TRUE ELSE NUM=A:STR="":IS_STRING=#FALSE ENDIF END