  It is often useful to tap information from a running R script. Obvious use
cases include monitoring the consumption of resources (time, memory) and
logging. Perhaps less obvious cases include tracking changes in R objects
orcollecting output of unit tests. In this paper we demonstrate an approach
that abstracts collection and processing of such secondary information from the
running R script. Our approach is based on a combination of three elements. The
first element is to build a customized way to evaluate code. The second is
labeled \emph{local masking} and it involves temporarily masking auser-facing
function so an alternative version of it is called. The third element we label
\emph{local side effect}. This refers to the fact that the masking function
exports information to the secondary information flow without altering a global
state. The result is a method for building systems in pure R that lets users
create and control secondary flows of information with minimal impact on their
workflow, and no global side effects.
