Library dilemma / Cofunctor class