
2009/04/22 Daniel Carrera
I hate monads.
Yikes! How do you feel about functors?
1) I know what a type is, but not a "type constructor". I don't normally think of an Int or even a complex type as being "constructed" except in the sense of OOP which I know is not what the author means.
Well, an object constructor takes values and makes a value. A type constructor takes types and makes a type. You've probably seen a few type constructors in your life, for example, `std::vector`, which makes vectors of type `std::vector<t>`. Likewise, `std::map` is a two argument type constructor.
2) Just *read* the paragraph... "a type constructor, a function that builds value of that type, and a function that combines values of that type with computations that produce values of that type to produce a computation of values of that type" Ugh....
I don't think you should take your first impression too seriously here. The notion of combining computations is really crucial to working with monads; you'll find it's pretty hard to get used to at first, no matter how it's presented. -- Jason Dusek