This library allows to overload different functions into a single function object