We should allow function signatures expecting a diploid. This could build on #73, where we could imagine overloads accepting functions taking diploids as arguments.
The challenge here may be in the dispatch. As in #74, we could run into issues with dispatch of functions composed via std::bind.
While we are at it, gamete-dependent mutation functions need to be changed so that the functions expect a const reference to gamete. The current requirement is a non-const reference, which is not what we intend.
We should allow function signatures expecting a diploid. This could build on #73, where we could imagine overloads accepting functions taking diploids as arguments.
The challenge here may be in the dispatch. As in #74, we could run into issues with dispatch of functions composed via
std::bind
.