<div dir="ltr"><div>i think its worth emphasizing that ghc today uses a simplification of the original 2011 paper... so revisiting it and seeing if the original design is worthwhile may be easier than you'd expect! <br></div><div><br></div><div>for my own purposes, i'm doing the approach below / inline  for now ;) <br></div><div><br></div><div>wither :: forall a b f . (Applicative f) =><br>        (a -> f (Maybe b)) -> RAList a -> f (RAList b)<br>wither = \f la ->    coerceWith coerceThroughFunctor     $ QRA.wither f $ coerce la<br>---<br>-- applicatives / functors can be coerced under, i have spoken<br>{-<br>for context, i otherwise need to do the following :<br>wither :: forall a b f . (Applicative f, (forall c d .  Coercible c d => Coercible (f c) (f d))  ) =><br>        (a -> f (Maybe b)) -> RAList a -> f (RAList b)<br>wither = \f la ->    coerce     $ QRA.wither f $ coerce la<br>-}<br>{-#INLINE coerceThroughFunctor #-}<br>coerceThroughFunctor :: forall a b f.  (Coercible a b, Functor f) => (Coercion (f a) (f b))<br>coerceThroughFunctor = (unsafeCoerce (Coercion :: Coercion a b  )) :: (Coercion (f a) (f b))</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 3, 2021 at 2:40 PM Carter Schonwald <<a href="mailto:carter.schonwald@gmail.com">carter.schonwald@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">In particular; the original design for roles was to attach role info to the kinds of types.  See <div dir="auto"><a href="https://www.seas.upenn.edu/~sweirich/papers/popl163af-weirich.pdf" target="_blank">https://www.seas.upenn.edu/~sweirich/papers/popl163af-weirich.pdf</a> from 2011 </div><div dir="auto"><br></div><div dir="auto">Since ghc now has pervasive annotations on types internally via the linearity work, enriching those with role information may be a tad more tractable than it was at the time </div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 3, 2021 at 1:25 PM Carter Schonwald <<a href="mailto:carter.schonwald@gmail.com" target="_blank">carter.schonwald@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">So like, for stateT, isn’t the “fix” adding suport for higher order role annotations to surface Haskell? </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 3, 2021 at 1:02 PM Carter Schonwald <<a href="mailto:carter.schonwald@gmail.com" target="_blank">carter.schonwald@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Isn’t the issue here the first orderness of the current roles system in ghc?  In which case what technological issues should be fixed? That we can’t do this because of limitations in the role system and I feel that doing this sortah change would *force* this to be prioritized.  </div><div dir="auto"><br></div><div dir="auto">This limitation is a misfeature, how can we make this get addressed sooner rather than later? Is this somewhere where Eg Haskell foundation or something could help?</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 3, 2021 at 12:15 PM Oleg Grenrus <<a href="mailto:oleg.grenrus@iki.fi" target="_blank">oleg.grenrus@iki.fi</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>I think Mag, regex-applicative etc. examples are all reparable.
      The main culprit is however StateT and a like, as you pointed out.
      It's meaningless to discuss Mag if we cannot even write Functor m
      => Functor (StateT s m).<br>
      <br>
      > Coercible constraints aren't unpacked in data constructors<br>
      <br>
      Aren't they zero-width at run time? That's IMO a bug if that is
      not true.</p></div><div><p><br>
      <br>
      - Oleg<br>
    </p>
    <div>On 3.1.2021 19.08, David Feuer wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="auto">Mag uses the One it does for
        efficiency/compactness. Coercible constraints aren't unpacked in
        data constructors, sadly. If you're looking for more examples of
        slightly-invalid but useful Functors, the first place I'd check
        (beyond the very-Mag-like things in lens that inspired Mag) is
        Roman Cheplyaka's regex-applicative. I don't know if his lifts
        coercions or not (haven't looked in a while) but it does some
        similarly illegitimate things for good reasons.</div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Sun, Jan 3, 2021, 12:03 PM
          Oleg Grenrus <<a href="mailto:oleg.grenrus@iki.fi" target="_blank">oleg.grenrus@iki.fi</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>    Prelude Control.Monad.Trans.State> :i StateT<br>
                  type role StateT nominal representational nominal<br>
              <br>
              Note, `StateT` is nominal in last argument (a). Thus if
              (forall c d. Coercible ...) where a Functor superclass,
              Functor (and thus Monad) wouldn't be definable for StateT.
              That would be... unfortunate.<br>
              <br>
              Until there are "higher roles" Functor cannot be
              Coercible1. It would rule very simple code.<br>
              (OTOH Mag can be repaired,
              <a href="https://oleg.fi/gists/posts/2019-07-31-fmap-coerce-coerce.html#functor-should-be-parametric" rel="noreferrer" target="_blank">https://oleg.fi/gists/posts/2019-07-31-fmap-coerce-coerce.html#functor-should-be-parametric</a>).<br>
            </p>
            <p>- Oleg<br>
              <br>
            </p>
            <div>On 3.1.2021 18.31, Carter Schonwald wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">
                <div>Hey David,</div>
                <div>could you exposit what would go wrong? a concrete
                  proof witness or explanation would help me a lot.
                  other people might benefit too.<br>
                </div>
                <div><br>
                </div>
                <div><br>
                </div>
                <div>for the stateT s Maybe a, perhaps i'm still waking
                  up this AM, so let me try <br>
                </div>
                <div>newtype StateT s m a = StateT {runStateT :: s ->
                  m (a, s)}</div>
                <div><br>
                </div>
                <div>so this should expand to  <br>
                </div>
                <div>'(s -> Maybe (a,s)),'</div>
                <div> but the coerce would be on the 'a' here ... so i'm
                  not seeing the issue?<br>
                </div>
                <div><br>
                </div>
                <div><br>
                </div>
                <div><br>
                </div>
                <div>the latter example seem to boil down to "a free
                  appplicative/functor Gadt" with some extra bits,
                  though i've not worked through to seeing the unsafety
                  <br>
                </div>
                <div>for the latter examples, the definitions are the
                  following : <br>
                </div>
                <div>
                  <pre style="font-family:monospace"><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090271" style="font-family:monospace"><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090272" style="font-family:monospace"><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090273" style="font-family:monospace"><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090274" style="font-family:monospace"><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090275" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#traverseBia" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">traverseBia</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">::</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><span style="font-family:monospace">Traversable</span></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090275" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace">,</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Biapplicative" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Biapplicative</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090274" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-132" style="font-family:monospace"></span><span style="font-family:monospace">            </span><span style="font-family:monospace">=></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090273" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090274" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090272" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090271" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090275" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090273" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090274" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090275" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090272" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090275" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090271" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span><span style="font-family:monospace">)</span></span></span></span></span></span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-133" style="font-family:monospace"></span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-traverseBia" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#traverseBia" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">traverseBia</span></a></span></span><span style="font-family:monospace"> </span><span style="font-family:monospace">=</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><span style="font-family:monospace">inline</span></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#traverseBiaWith" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">traverseBiaWith</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><span style="font-family:monospace">traverse</span></span><span style="font-family:monospace">)</span><span style="font-family:monospace">
 --------
<span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#traverseBiaWith" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">traverseBiaWith</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">::</span><span style="font-family:monospace"> </span><span style="font-family:monospace">forall</span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090289" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090289" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090288" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090288" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090285" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090285" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090284" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090284" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090287" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090287" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">s</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090286" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090286" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span></span><span style="font-family:monospace">.</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Biapplicative" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Biapplicative</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090289" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-160" style="font-family:monospace"></span><span style="font-family:monospace">  </span><span style="font-family:monospace">=></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace">forall</span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090291" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090291" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">f</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090290" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090290" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span></span><span style="font-family:monospace">.</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><span style="font-family:monospace">Applicative</span></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090291" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">f</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">=></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090288" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090291" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">f</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090290" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090287" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">s</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090291" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">f</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090286" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090290" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace">)</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-161" style="font-family:monospace"></span><span style="font-family:monospace">  </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090288" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090289" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090285" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090284" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090287" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">s</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090289" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090286" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090285" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090286" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090284" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-162" style="font-family:monospace"></span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-traverseBiaWith" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#traverseBiaWith" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">traverseBiaWith</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089877" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089877" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">trav</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089876" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089876" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089875" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089875" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">s</span></a></span></span><span style="font-family:monospace"> </span><span style="font-family:monospace">=</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#smash" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">smash</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089876" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089877" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">trav</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#One" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">One</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089875" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">s</span></a></span><span style="font-family:monospace">)
-------
<span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#smash" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">smash</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">::</span><span style="font-family:monospace"> </span><span style="font-family:monospace">forall</span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090262" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090262" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090258" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090258" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090261" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090261" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090260" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090260" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090259" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090259" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span></span><span style="font-family:monospace">.</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Biapplicative" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Biapplicative</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090262" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-166" style="font-family:monospace"></span><span style="font-family:monospace">      </span><span style="font-family:monospace">=></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090261" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090262" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090260" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090259" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-167" style="font-family:monospace"></span><span style="font-family:monospace">      </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace">forall</span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090264" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090264" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span></span><span style="font-family:monospace">.</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Mag" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Mag</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090261" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090264" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090258" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090264" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace">)</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-168" style="font-family:monospace"></span><span style="font-family:monospace">      </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090262" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090258" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090260" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090258" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090259" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-169" style="font-family:monospace"></span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-smash" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#smash" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">smash</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089872" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089872" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089871" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089871" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">m</span></a></span></span><span style="font-family:monospace"> </span><span style="font-family:monospace">=</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089871" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">m</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089871" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">m</span></a></span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-170" style="font-family:monospace"></span><span style="font-family:monospace">  </span><span style="font-family:monospace">where</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-171" style="font-family:monospace"></span><span style="font-family:monospace">    </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">::</span><span style="font-family:monospace"> </span><span style="font-family:monospace">forall</span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090249" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090249" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679090248" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090248" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">y</span></a></span></span><span style="font-family:monospace">.</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Mag" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Mag</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090261" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090260" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">b</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090249" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Mag" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Mag</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090261" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">a</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090259" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">c</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090248" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">y</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">-></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090262" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">p</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090249" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679090248" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">y</span></a></span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-172" style="font-family:monospace"></span><span style="font-family:monospace">    </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089870" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Pure" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Pure</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089868" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089868" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Pure" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Pure</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089867" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089867" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">u</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">=</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#bipure" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">bipure</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089868" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">t</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089867" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">u</span></a></span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-173" style="font-family:monospace"></span><span style="font-family:monospace">    </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Map" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Map</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089865" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089865" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">f</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089864" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089864" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Map" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Map</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089863" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089863" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">g</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089862" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089862" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">y</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">=</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><span style="font-family:monospace">bimap</span></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089865" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">f</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089863" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">g</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089864" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">x</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089862" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">y</span></a></span><span style="font-family:monospace">)</span><span style="font-family:monospace">
</span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-line-174" style="font-family:monospace"></span><span style="font-family:monospace">    </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Ap" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Ap</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089860" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089860" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">fs</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089859" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089859" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">xs</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#Ap" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">Ap</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089858" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089858" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">gs</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089857" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089857" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">ys</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">=</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089860" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">fs</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089858" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">gs</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#%3C%3C%2A%3E%3E" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace"><<*>></span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089859" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">xs</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089857" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">ys</span></a></span><span style="font-family:monospace">
#if MIN_VERSION_base(4,10,0)
</span><span style="font-family:monospace">    </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089870" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">go</span></a></span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#LiftA2" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">LiftA2</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089855" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089855" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">f</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089854" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089854" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">xs</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089853" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089853" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">ys</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">(</span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#LiftA2" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">LiftA2</span></a></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089852" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089852" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">g</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089851" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089851" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">zs</span></a></span></span><span style="font-family:monospace"> </span><span id="gmail-m_-8968592168180887876m_4077059769334883147m_8989424717208952819m_5656353603239817726m_7365306672771404874m_5071564298494191785gmail-local-6989586621679089850" style="font-family:monospace"><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#local-6989586621679089850" rel="noreferrer" style="font-family:monospace" target="_blank"><span style="font-family:monospace">ws</span></a></span></span><span style="font-family:monospace">)</span><span style="font-family:monospace"> </span><span style="font-family:monospace">=</span><span style="font-family:monospace"> </span><span style="font-family:monospace"><a href="https://hackage.haskell.org/package/bifunctors-5.5.9/docs/src/Data.Biapplicative.html#biliftA2" rel="noreferrer" style="font-family:monospace" target="_blank"></a></span></span></span></pre></div></div></blockquote></div></blockquote></div></blockquote></div></blockquote></div></div></blockquote></div></div>
</blockquote></div></div>
</blockquote></div>