Sun Jun 17 01:41:02 EDT 2018


It would be just Kleisli.

But basically, after Conal indoctrination, I really like the
applicative version more.  Functions, be it monadic functions, seem to
make more sense.

But maybe just try it?


  While the exact mathematics doesn't seem to have been worked out
  exactly yet, it is well known that Applicative+Category has "about
  the same" expressiveness as Arrows.

  Using Strong from profunctors, you can prove Strong + Category has
  exactly the same expressiveness.

  gives most of the story and
  http://www-kb.is.s.u-tokyo.ac.jp/~asada/papers/arrStrMnd.pdf gives
  the rest, but you need to read between the lines and see that using
  Category gives you a way to model monads in Prof.

  class (Strong p, Category p) => Arrow p
  instance (Strong p, Category p) => Arrow p

  There. I fixed it.

So basically, forget arrows.