functors with data: const/mutable, val/rref [1st example: bind]