title: Why can't I stack two readers ontop of eachother?
body: <p>I get errors like this:</p>
  
  <p>Let's say I have a monadStack <code>ReaderT A (ReaderT B m)</code>, whenever I use <code>ask</code> or <code>asks</code>, I get an error like this:</p>
  
  <pre><code>Types.hs:21:10:
      Couldn't match type ‘A’ with ‘B’
      arising from a functional dependency between:
        constraint ‘MonadReader B m’
          arising from the instance declaration
        instance ‘MonadReader A m2’ at Types.hs:21:10-63
      In the instance declaration for ‘MonadReader A m’
  </code></pre>
  
  <p>How come Haskell can't figure out which instance to use? Also, how can I solve this?
  Let's say putting <code>A</code> and <code>B</code> in the same datatype is not an option, because I need a <code>MonadReader A m</code> instance.</p>