anchor.diff:    }
   
     bool workStep() {
  +    //    print(currentState);
  +    //    print(currentInput);
  +    print(lastAcceptingInput);
  +    print('inputs: $inputs');
       // First, check to see if the current state must accept.
       if (currentState.mustAccept) {
  +      print('mustAccept');
         currentState = currentState.accept();
  -      lastAcceptingState = new RejectState();
  +      lastAcceptingState = new RejectState(inputs);
         lastAcceptingInput = null;
         return true;
       }
   
       // First, check to see if the curret state accepts or rejects.
       if (currentState.isAccept) {
  +      print('isAccept');
         lastAcceptingState = currentState;
  -      lastAcceptingInput = currentInput;
  +      lastAcceptingInput = inputs;//currentInput;
       } else if (currentState.isReject) {
  +      print('isReject');
         // Backtrack to the last accepting state; fail if none.
         currentState = lastAcceptingState.accept();
         currentInput = lastAcceptingInput;
  -      lastAcceptingState = new RejectState();
  +      lastAcceptingState = new RejectState(inputs);
         lastAcceptingInput = null;
         return true;
       }
   
       // If at the end of the input, clean up:
       if (currentInput.isEmpty) {
  +      print('isEmpty');
         var terminalState = currentState.terminate();
         if (terminalState.isAccept) {
           terminalState.accept();
           return false;
         } else {
  +      print('not isEmpty');
           currentState = lastAcceptingState.accept();
           currentInput = lastAcceptingInput;
  -        lastAcceptingState = new RejectState();
  +        lastAcceptingState = new RejectState(inputs);
           lastAcceptingInput = null;
           return true;
         }
  
positive.code: abstract class Rule {
    bool get accepts;
    bool get rejects;
    bool get mustAccept;
  
    State accept(List inputs);
    List<Rule> derive(input);
    List<Rule> deriveEND();
  }
  
  /// Represents a state
  abstract class _State {
  
negative.code: 
    /// Accepts the [input]
    _State accept(){
      print('accepting $inputs');
      var accepting = rules.where((_) => _.accepts);
      return (accepting.last).accept(inputs);
    }
  