count w = Kleisli readFile >>>
arr words >>> arr (filter (==w)) >>> arr length >>>
Kleisli print
I get that Kleisli (f::a -> m b) makes an Monad m => Kleisli m a b which is an instance of Arrow, and that a b c >>> a c d means a b d.
just making sure i'm getting all the parts:
- arr words without a context has no concrete type beyond Arrow a => a [String] (is concrete type the correct term?)
- given the context of Kleisli readFile >> arr words, the type system knows that arr words :: Kleisli IO String [String]
are both points true and complete?
thanks guys,
-franco