3 ms·
> m, a, and b are all type-level variables; the value of m is a type constructor (which is essentially a type-level function), while the values of a and b are t
by bmn__ 5y ago
> m, a, and b are all type-level variables; the value of m is a type constructor (which is essentially a type-level function), while the values of a and b are types.
Let's try to apply that knowledge, and use my tribe's creed that "similar things should look similar, and different things should look different":
-- α, β types
-- m type constructor
(>>=) :: m α -> (α -> m β) -> m β
-- a, b types
-- 𝘮 type constructor
(>>=) :: 𝘮 a -> (a -> 𝘮 b) -> 𝘮 b
I think that's much better. GP's complaint was correct, writing different concepts with the same notation is confusing.
- smitty1e 5y agoMay good fortune land all over you.
- loopz 5y agoThere's alot of unspoken assumptions, like what m usually means. The brevity is supposed to make higher concepts expressible however. Monad m is just a basic building block. It's hard to find best intro material. The above could scare away someone else, even Haskellers. Maybe intro on how to read examples, explanations etc. could aide?