This must exist, right? It seems to me that points in mathematical spaces are often made to carry extra baggage. In my case, I'd like to label each point in an n-dimensional space with a name and a domain-specific type. Is a monad the right way to represent such extra baggage, or is a parameterized record the best way to do it? And what libraries provide this sort of capability out of box?