anchor.diff:                  | _ ->
                       [frontier]
   
  -            | _ -> failwith "pattern compilation: GenerateNewFrontiersAfterSucccessfulInvestigation"
  +            | _ -> failwith "pattern compilation: GenerateNewFrontiersAfterSuccessfulInvestigation"
           else [frontier]
   
       and BindProjectionPattern (Active(path, subExpr, p) as inp) ((accActive, accValMap) as s) =
  
positive.code: 
      // Build a new frontier that represents the result of a successful investigation
      // at rule point (i', discrim, path)
      and GenerateNewFrontiersAfterSucccessfulInvestigation inpExprOpt resPostBindOpt (Investigation(i', discrim, path)) (Frontier (i, active, valMap) as frontier) =
  
          if (isMemOfActives path active) then
              let (SubExpr(accessf, ve)), pat = lookupActive path active
  
negative.code: 
      // All these should also always have default cases
      | (TCase(DecisionTreeTest.Const ConstNeedsDefaultCase, _) :: _), None ->
          error(InternalError("inexhaustive match - need a default case!", m))
  
      // Split string, float, uint64, int64, unativeint, nativeint matches into serial equality tests
      | TCase((DecisionTreeTest.ArrayLength _ | DecisionTreeTest.Const (Const.Single _ | Const.Double _ | Const.String _ | Const.Decimal _ | Const.Int64 _ | Const.UInt64 _ | Const.IntPtr _ | Const.UIntPtr _)), _) :: _, Some dflt ->
  