It seems that the Sofomore.tell method depends on the order of solutions delivered by ask and stored in Sofomore._told_indices. This breaks the original contract of how ask-and-tell is supposed to work: the reason why the first argument of tell is a list of solutions is that we don't assume that these solution must be the same solutions which ask delivered previously.
The problem in our context is that we need to attribute solutions to the kernels they originate from. One way to go about this problem differently could be a dictionary that stores the kernel of each solution in ask, for example using the
SolutionDict class, and this dictionary then can be used in tell.