Add map() and flatmap()

As discussed in #11.
Excellent point.