anchor.diff:  	 char_is_numeric/1,	% [-1, 255] -> true | false
   	 char_is_subsequent/1,	% [-1, 255] -> true | false
   	 char_is_exponent/1,	% [-1, 255] -> true | false
  -	 char_is_lower_case/1,	% [-1, 255] -> true | false
  -	 char_is_upper_case/1,	% [-1, 255] -> true | false
  -	 char_is_alphabetic/1,	% [-1, 255] -> true | false
   	 char_is_eof/1,		% [-1, 255] -> true | false
  -	 char_upcase/1,		% [-1, 255] -> [-1, 255]
  -	 char_downcase/1,	% [-1, 255] -> [-1, 255]
   	 char_value/1]).	% [-1, 255] -> [0-15, 255]
   
   %% Character classification flag bits:
  
positive.code: %% 16#08: numeric
  %% 16#10: subsequent	(used by the reader)
  %% 16#20: exponent	(used by the reader)
  %% 16#40: lower-case
  %% 16#80: upper-case
  
  char_is_type(Ch, Mask) ->
    ChTypeTab = % indexed by [-1, 255] + 1
  
negative.code:      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
       "\x03\x14\x02\x00\x14\x14\x14\x00\x02\x02\x14\x10\x00\x10\x10\x14"
       "\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x14\x02\x14\x14\x14\x14"
       "\x14\x14\x14\x14\x34\x34\x34\x14\x14\x14\x14\x14\x34\x14\x14\x14"
       "\x14\x14\x14\x34\x14\x14\x14\x14\x14\x14\x14\x02\x00\x02\x14\x14"
       "\x00\x14\x14\x14\x34\x34\x34\x14\x14\x14\x14\x14\x34\x14\x14\x14"
       "\x14\x14\x14\x34\x14\x14\x14\x14\x14\x14\x14\x00\x00\x00\x14\x00"
       "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
       "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
       "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  