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:                  // Project a successful edge through the frontiers.
                   let investigation = Investigation(i', discrim, path)
  
                   let frontiers = frontiers |> List.collect (GenerateNewFrontiersAfterSucccessfulInvestigation inpExprOpt resPostBindOpt investigation)
                   let tree = InvestigateFrontiers refuted frontiers
                   // Bind the resVar for the union case, if we have one
                   let tree =
  
negative.code: 
      // Build a new frontier that represents the result of a successful investigation
      // at rule point (i', discrim, path)
      and GenerateNewFrontiersAfterSuccessfulInvestigation 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
  