|
|
|
|
|
by tel
4090 days ago
|
|
It... doesn't. We appear to be talking past one another. How do you interpret (>>) :: Monad m => m a -> m b -> m b
as combining two maps of any kind without either (a) specializing `m` to a function type or (b) considering it syntax sugar for a >> b ===> (const a >=> const b) ()
|
|
It does! :)
> How do you interpret (>>) :: Monad m => m a -> m b -> m b as combining two maps of any kind
The answer is in your question. Is -> not an arrow? Isn't there one of those arrows pointing into and out of every m x in the signature above? (for the first and last m x, there could be arrows pointing in and out, respectively). That means they are maps.
A morphism is any value that has arrows pointing to it (from other values) and out of it (to other values). Read my answer above as well.
I am not debating your arguments. I know you know what you are talking about and you are right in what you're saying otherwise. What I am saying is in Haskell everything except Bottom is a categorical morphism, and you seem to be ignoring this concept, which is helpful for those who are trying to make sense of all this.