It\'s actually the challenge #6 from Category Theory for Programmers - Chapter 2, and this question is a follow up on this other question I asked some time ago: