anchor.diff:                  maybe -> none
               end
       end.
  -
  -eval_boolean({{'not',is_boolean},Var}, {bif,'not'}, [Var]) ->
  -    failed;
  -eval_boolean({{'not',is_boolean},Var}, {bif,Op}, Args)
  -  when Op =:= 'and'; Op =:= 'or' ->
  -    case member(Var, Args) of
  -        true -> failed;
  -        false -> none
  -    end;
  -eval_boolean(_, _, _) ->
  -    none.
   
   %% will_succeed(PrevCondition, Condition) -> yes | no | maybe
   %%  PrevCondition is a condition known to be true. This function
  
positive.code:         false -> #{}
      end.
  
  bind_var(Var, failed, Bs) ->
      Bs#{Var=>failed};
  bind_var(Var, Val0, Bs) ->
      Val = get_value(Val0, Bs),
      Bs#{Var=>Val}.
  
negative.code: eval_rel_op(Bif, Args, #st{rel_op=Prev}) ->
      case normalize_op(Bif, Args) of
          none ->
              none;
          RelOp ->
              case will_succeed(Prev, RelOp) of
                  yes -> #b_literal{val=true};
  