What is this thing similar to KleisliFunctor?
<p>Here is how we can define <a href="https://elvishjerricco.github.io/2016/10/12/kleisli-functors.html" rel="noreferrer"><code>KleisliFunctor</code></a>:</p>

<pre><code>class (Monad m, Functor f) =&gt; KleisliFunctor m f where
  kmap :: (a -&gt; m b) -&gt; f a -&gt; f b
  kmap f = kjoin . fmap f

  kjoin :: f (m a) -&gt; f a
  kjoin = kmap id
</code></pre>

<p>Does this type class</p>

<pre><code>class (Functor f, Monad m) =&gt; Absorb f m where
  (&gt;&gt;~) :: f a -&gt; (a -&gt; m b) -&gt; m b
  a &gt;&gt;~ f = ajoin $ fmap f a

  ajoin :: f (m a) -&gt; m a
  ajoin a = a &gt;&gt;~ id
</code></pre>

<p>fit somewhere into category theory? What are the laws? Are they</p>

<pre><code>a &gt;&gt;~ g . f     === fmap f a &gt;&gt;~ g
a &gt;&gt;~ (f &gt;=&gt; g) === a &gt;&gt;~ f &gt;&gt;= g
</code></pre>

<p>?</p>