Smallcheck fun: Let's just check the (->) profunctor instance on functions on a tiny datatype, say data Three = A | B | C.
Hmm, why is it taking so long?? Oh, there are 27 functions of type Three -> Three, and the composition test takes 5 of those, that's 27^5 :-)