We should not allow a connection to be established with null function objects. [See reference](https://en.cppreference.com/w/cpp/utility/functional/function/operator_bool). It may be worth adding a `NullFunction` exception derived from `std::invalid_argument`.