anchor.diff:                    LocalDeclaration : bool
                     GlobalFrame : DeclarationFrame
                     LocalFrame : DeclarationFrame
  +                  // TODO: consider making this mutating for speed
                     ProceduralFrames : ProceduralFrame list }
       
           [<RequireQualifiedAccess; CompilationRepresentation (CompilationRepresentationFlags.ModuleSuffix)>]
  
positive.code:                     let (_, binding) = frame.[index]
                      Some binding
  
              let private addDeclarationBinding name value env =
                  if env.LocalDeclaration
                  then env.LocalFrame.ForceAdd (name, value)
                  else env.GlobalFrame.ForceAdd (name, value)
      
              let tryAddDeclarationBinding name value env =
                  if (env.Rebinding || not ^ env.LocalFrame.ContainsKey name) then
                      addDeclarationBinding name value env
                      Some env
                  else None
      
  
negative.code: 
              let tryGetDeclarationBinding name env =
                  match env.LocalFrame.TryGetValue name with
                  | (false, _) ->
                      match env.GlobalFrame.TryGetValue name with
                      | (false, _) -> None
                      | (true, value) -> Some value
                  | (true, value) -> Some value
      
              let tryGetProceduralBinding name env =
                  let refOffset = ref -1
  