anchor.diff:      | _ ->
           OptimizeExpr cenv env expr
   
  -//-------------------------------------------------------------------------
  -// Optimize/analyze an application of an intrinsic operator to arguments
  -//-------------------------------------------------------------------------
  -
  +/// Optimize/analyze an application of an intrinsic operator to arguments
   and OptimizeExprOp cenv env (op, tyargs, args, m) =
   
       // Special cases 
  
positive.code: 
        abstractExprInfo ivalue
  
  //-------------------------------------------------------------------------
  // Remap optimization information, e.g. to use public stable references so we can pickle it
  // to disk.
  //------------------------------------------------------------------------- 
  let RemapOptimizationInfo g tmenv =
  
      let rec remapExprInfo ivalue = 
  
negative.code:     | Some valu -> 
          match TryOptimizeVal cenv env (false, valu, m)  with 
          | Some res -> OptimizeExpr cenv env res  (* discard e1 since guard ensures it has no effects *)
          | None -> OptimizeExprOpFallback cenv env (op, tyargs, argsR, m) arginfos valu
      | None -> OptimizeExprOpFallback cenv env (op, tyargs, argsR, m) arginfos UnknownValue
  
  and OptimizeExprOpFallback cenv env (op, tyargs, argsR, m) arginfos valu =
      // The generic case - we may collect information, but the construction/projection doesnRt disappear 
      let argsTSize = AddTotalSizes arginfos
      let argsFSize = AddFunctionSizes arginfos
      let argEffects = OrEffects arginfos
  