Fix definition of map_a (was reversing the list using
fold_left). Generalise types of >* and <*. Add <*>.