title: Why does Doobie use free monad?
body: <p>It seems that simple </p>
  
  <pre><code>type Db[F[_], A] = Kleisli[F, Connection, A]
  type Transactor[DB[_], F[_]] = DB ~&gt; F
  </code></pre>
  
  <p>Сan be used to build functional JDBC layer as well</p>