title: What is "a function that you call" and what is "a function that call you"?
body: <p>I'm trying to understand what is Haskell Reader monad, but I struggle with this part in the book:</p>
  
  <blockquote>
    <p>The “read-only” nature of the type argument <code>r</code> means that you can swap in a different type or value of <code>r</code> for functions that you call, but not for functions that call you. The best way to demonstrate this is with the <code>withReaderT</code> function which lets us start a new <code>Reader</code> context with a different argument being provided:</p>
  
  <pre><code>withReaderT 
    :: (r' -&gt; r) 
    -- ^ The function to modify the environment. 
    -&gt; ReaderT r m a 
    -- ^ Computation to run in the modified environment. 
    -&gt; ReaderT r' m a 
  </code></pre>
  </blockquote>
  
  <p>So, first of all, could you please specify what to consider  "a function that you call" and what to consider "a function that call you"?</p>