anchor.diff:      // REVIEW: This should only apply to methods that actually make self-tailcalls (tested further below).
       // Old comment "don't mess with taking guaranteed tailcalls if used with --no-tailcalls!" 
       cenv.emitTailcalls &&
  +    not env.inLoop &&
       einfo.FunctionSize >= threshold &&
   
        // We can only split an expression out as a method if certain conditions are met. 
  
positive.code:       // contains any of these variables then don't split it, for fear of mucking up tailcalls.
        // See FSharp 1.0 bug 2892
        dontSplitVars: ValMap<unit>;  
        /// The Val for the function binding being generated, if any. 
        functionVal: (Val * Tast.ValReprInfo) option;
        typarInfos: (Typar * TypeValueInfo) list; 
  
negative.code:           typarInfos = [];
            functionVal = None; 
            dontSplitVars = ValMap.Empty;
            inLoop = false
            localExternalVals = LayeredMap.Empty; 
            globalModuleInfos = LayeredMap.Empty }
  
  