included Bartols version of trClos in the solution, it is smaller but fails sometimes in quickCheck (due to not-bottoming out of @@)
comment updated