anchor.diff:             ident()]).
   
   expression() ->
  -    value(10).
  +    ?SIZED(N,
  +           value(N)).
  +
  
positive.code: -include_lib("proper/include/proper.hrl").
  
  to_string({ident, Ident, _}) ->
      Ident;
  to_string({symbol, Ident, _}) ->
      ":" ++ Ident;
  to_string({quote, Value, _}) ->
     "'" ++ to_string(Value);
  to_string({fun_ref, {Module, Fun, Arity}, _}) ->
  
negative.code:           list([ident_character()])},
           [S1 | erlang:binary_to_list(unicode:characters_to_binary(S2))]).
  
  ident_atom() ->
      ?LET(S, ident_string(),
           list_to_atom(S)).
  
  defvar_style_ident() ->
      ?LET(S, ident_string(),
           list_to_atom("*" ++ S ++ "*")).
  
  split_ident() ->
      ?LET({S1, S2}, {ident_string(), ident_string()},
           list_to_atom(S1 ++ "-" ++ S2)).
  
  normal_ident() ->
      ident_atom().
  
  symbol() ->
     ?LET(I, normal_ident(),
          {quote, {ident, I, 0}, 0}).
  
  ident() ->
      {ident, union([normal_ident(),
  