anchor.diff:      | {range, {integer, integer()}, {integer, integer()}}
       | {union, [tester_type()]}
       | {record, atom(), atom()}
  +    | nonempty_string
       | integer
       | pos_integer
       | non_neg_integer
  
positive.code:     | {range, {integer, integer()}, {integer, integer()}}
      | {union, [any()]}
      | {record, atom(), atom()}
      | integer
      | pos_integer
      | non_neg_integer
  
negative.code:     {{range, {integer, 0}, {integer, 16#10ffff}}, ParseState};
  parse_type({type, _Line, string, []}, _Module, ParseState) ->
      {{list, {range, {integer, 0}, {integer, 16#10ffff}}}, ParseState};
  parse_type({type, _Line, nonempty_string, []}, _Module, ParseState) ->
      {nonempty_string, ParseState};
  parse_type({type, _Line, number, []}, _Module, ParseState) ->
      {{union, [integer, float]}, ParseState};
  parse_type({type, _Line, boolean, []}, _Module, ParseState) ->
  