Parcels and motes
I said recently:
Is there any good terminology for a
value of type f a when f is an arbitrary functor?
I will try calling an f t value a “t parcel” and see how that
works.
The more I think about “parcel” the happier I am with it. It strongly
suggests container types, of course, so that a t parcel might be a
boxful of t s. But it also hints at some other possible situations:
 You might open the parcel and find it empty. (
Maybe t )
 You might open the parcel and find, instead of the
t you expected,
a surprising prank snake. (Either ErrorMessage t )
 You might open the parcel and find that your
t has been shipped with assembly required. (env > t )
 The parcel might explode when you open it. (
IO t )
 And, of course, a burrito is a sort of parcel of meat and beans.
I coined “parcel” thinking that one would want different terminology
for values of type f t depending on whether f was a functor
(“parcel”) or also a monad (“mote”). Of course every mote is a
parcel, but not always vice versa. Now I'm not sure that both terms
are needed. Nonmonadic functors are unusual, and nonapplicative
functors rare, so perhaps one term will do for all three.
[Other articles in category /prog/haskell]
permanent link
