Program: 92428
Project: 92428
Buggy source:
public static <R,MS,M,VS,V>Match<R> withHandler(final JSonHandler<R,MS,M,VS,V> handler){
  final Matcher<TokenStream,R> main, object, array;
  final Matcher<TokenStream,Object> members, remainingMembers, member, values, remainingValues, value;
  main=parser(Matcher.<TokenStream,R>create());
  object=parser(Matcher.<TokenStream,R>create());
  array=parser(Matcher.<TokenStream,R>create());
  members=parser(Matcher.<TokenStream,Object>create());
  remainingMembers=parser(Matcher.<TokenStream,Object>create());
  member=parser(Matcher.<TokenStream,Object>create());
  values=parser(Matcher.<TokenStream,Object>create());
  remainingValues=parser(Matcher.<TokenStream,Object>create());
  value=parser(Matcher.<TokenStream,Object>create());
  main.caseOf(var.of(Alt(object,array))).then.function(new Function<R,R>(){
    @Override public R apply(    R r) throws Exception {
      return r;
    }
  }
);
  object.caseOf(Seq(Kwd("String_Node_Str"),var.of(Opt(members)),Kwd("String_Node_Str"))).then.function(new Function<Option<MS>,R>(){
    @Override public R apply(    Option<MS> o) throws Exception {
      return handler.anObject(o);
    }
  }
);
  array.caseOf(Seq(Kwd("String_Node_Str"),var.of(Opt(values)),Kwd("String_Node_Str"))).then.function(new Function<Option<VS>,R>(){
    @Override public R apply(    Option<VS> o) throws Exception {
      return handler.anArray(o);
    }
  }
);
  members.caseOf(Seq(var.of(member),var.of(Opt(remainingMembers)))).then.function(new Function2<M,Option<MS>,MS>(){
    @Override public MS apply(    M o1,    Option<MS> o2) throws Exception {
      return handler.someMembers(o1,o2);
    }
  }
);
  remainingMembers.caseOf(Seq(Kwd("String_Node_Str"),var.of(members))).then.function(new Function<MS,MS>(){
    @Override public MS apply(    MS o) throws Exception {
      return o;
    }
  }
);
  member.caseOf(Seq(var.of(String),Kwd("String_Node_Str"),var.of(value))).then.function(new Function2<Token.StringToken,V,M>(){
    @Override public M apply(    Token.StringToken o1,    V o2) throws Exception {
      return handler.aMember(o1.value(),o2);
    }
  }
);
  values.caseOf(Seq(var.of(value),var.of(Opt(remainingValues)))).then.function(new Function2<V,Option<VS>,VS>(){
    @Override public VS apply(    V o1,    Option<VS> o2) throws Exception {
      return handler.someValues(o1,o2);
    }
  }
);
  remainingValues.caseOf(Seq(Kwd("String_Node_Str"),var.of(values))).then.function(new Function<VS,VS>(){
    @Override public VS apply(    VS o) throws Exception {
      return o;
    }
  }
);
  value.caseOf(var.of(main)).then.function(new Function<R,V>(){
    @Override public V apply(    R o) throws Exception {
      return handler.aValue(o);
    }
  }
);
  value.caseOf(var.of(Alt(String,Int,Float))).then.function(new Function<Token,V>(){
    @Override public V apply(    Token o) throws Exception {
      final Object value=o.value();
      if (value instanceof String) {
        return handler.aString((String)value);
      }
      if (value instanceof Integer) {
        return handler.anInteger((Integer)value);
      }
      if (value instanceof Float) {
        return handler.aFloat((Float)value);
      }
      throw new IllegalArgumentException();
    }
  }
);
  value.caseOf(var.of(Kwd(Regex("String_Node_Str")))).then.function(new Function<Token.KeywordToken,Object>(){
    @Override public Object apply(    Token.KeywordToken o) throws Exception {
      final Object value=o.value();
      if (value.equals("String_Node_Str")) {
        return handler.aNull();
      }
      if (value.equals("String_Node_Str")) {
        return handler.aBoolean(false);
      }
      if (value.equals("String_Node_Str")) {
        return handler.aBoolean(true);
      }
      throw new IllegalArgumentException();
    }
  }
);
  return new Match<R>(){
    @Override public R match(    TokenStream stream){
      return main.match(stream);
    }
  }
;
}

Fixed version (ground truth):
public static <R,MS,M,VS,V>Match<R> withHandler(final JSonHandler<R,MS,M,VS,V> handler){
  final Matcher<TokenStream,R> main, object, array;
  final Matcher<TokenStream,Object> members, remainingMembers, member, values, remainingValues, value;
  main=parser(Matcher.<TokenStream,R>create());
  object=parser(Matcher.<TokenStream,R>create());
  array=parser(Matcher.<TokenStream,R>create());
  members=parser(Matcher.<TokenStream,Object>create());
  remainingMembers=parser(Matcher.<TokenStream,Object>create());
  member=parser(Matcher.<TokenStream,Object>create());
  values=parser(Matcher.<TokenStream,Object>create());
  remainingValues=parser(Matcher.<TokenStream,Object>create());
  value=parser(Matcher.<TokenStream,Object>create());
  main.caseOf(var.of(Alt(object,array))).then.function(new Function<R,R>(){
    @Override public R apply(    R r) throws Exception {
      return r;
    }
  }
);
  object.caseOf(Seq(Kwd("String_Node_Str"),var.of(Opt(members)),Kwd("String_Node_Str"))).then.function(new Function<Option<MS>,R>(){
    @Override public R apply(    Option<MS> o) throws Exception {
      return handler.anObject(o);
    }
  }
);
  array.caseOf(Seq(Kwd("String_Node_Str"),var.of(Opt(values)),Kwd("String_Node_Str"))).then.function(new Function<Option<VS>,R>(){
    @Override public R apply(    Option<VS> o) throws Exception {
      return handler.anArray(o);
    }
  }
);
  members.caseOf(Seq(var.of(member),var.of(Opt(remainingMembers)))).then.function(new Function2<M,Option<MS>,MS>(){
    @Override public MS apply(    M o1,    Option<MS> o2) throws Exception {
      return handler.someMembers(o1,o2);
    }
  }
);
  remainingMembers.caseOf(Seq(Kwd("String_Node_Str"),var.of(members))).then.function(new Function<MS,MS>(){
    @Override public MS apply(    MS o) throws Exception {
      return o;
    }
  }
);
  member.caseOf(Seq(var.of(String),Kwd("String_Node_Str"),var.of(value))).then.function(new Function2<Token.StringToken,V,M>(){
    @Override public M apply(    Token.StringToken o1,    V o2) throws Exception {
      return handler.aMember(o1.value(),o2);
    }
  }
);
  values.caseOf(Seq(var.of(value),var.of(Opt(remainingValues)))).then.function(new Function2<V,Option<VS>,VS>(){
    @Override public VS apply(    V o1,    Option<VS> o2) throws Exception {
      return handler.someValues(o1,o2);
    }
  }
);
  remainingValues.caseOf(Seq(Kwd("String_Node_Str"),var.of(values))).then.function(new Function<VS,VS>(){
    @Override public VS apply(    VS o) throws Exception {
      return o;
    }
  }
);
  value.caseOf(var.of(main)).then.function(new Function<R,V>(){
    @Override public V apply(    R o) throws Exception {
      return handler.aValue(o);
    }
  }
);
  value.caseOf(var.of(String)).then.function(new Function<Token.StringToken,V>(){
    @Override public V apply(    Token.StringToken o) throws Exception {
      return handler.aString(o.value());
    }
  }
);
  value.caseOf(var.of(Int)).then.function(new Function<Token.IntToken,V>(){
    @Override public V apply(    Token.IntToken o) throws Exception {
      return handler.anInteger(o.value());
    }
  }
);
  value.caseOf(var.of(Float)).then.function(new Function<Token.FloatToken,V>(){
    @Override public V apply(    Token.FloatToken o) throws Exception {
      return handler.aFloat(o.value());
    }
  }
);
  value.caseOf(var.of(Kwd("String_Node_Str"))).then.function(new Function<Token.KeywordToken,Object>(){
    @Override public Object apply(    Token.KeywordToken o) throws Exception {
      return handler.aNull();
    }
  }
);
  value.caseOf(var.of(Kwd("String_Node_Str"))).then.function(new Function<Token.KeywordToken,Object>(){
    @Override public Object apply(    Token.KeywordToken o) throws Exception {
      return handler.aBoolean(true);
    }
  }
);
  value.caseOf(var.of(Kwd("String_Node_Str"))).then.function(new Function<Token.KeywordToken,Object>(){
    @Override public Object apply(    Token.KeywordToken o) throws Exception {
      return handler.aBoolean(false);
    }
  }
);
  return new Match<R>(){
    @Override public R match(    TokenStream stream){
      return main.match(stream);
    }
  }
;
}