+ * Binders turn functions/functors with two arguments into functors
+ * with a single argument, storing an argument to be applied later.
+ * For example, a variable @c B of type @c binder1st is constructed
+ * from a functor @c f and an argument @c x. Later, B's @c
+ * operator() is called with a single argument @c y. The return
+ * value is the value of @c f(x,y). @c B can be @a called with
+ * various arguments (y1, y2, ...) and will in turn call @c
+ * f(x,y1), @c f(x,y2), ...
+ *
+ * The function @c bind1st is provided to save some typing. It takes the