this looks strange, was the intention `yield k -> s` ?