--------------------------------------------------------------------------------
-- from http://www.cubiclemuses.com/cm/articles/2011/07/14/quickchecking-type-class-laws/
asFunctionOf :: (a -> b) -> a -> (a -> b)
asFunctionOf f _ = f
asFunctionOf :: (a -> b) -> a -> (a -> b)
asFunctionOf f _ = f
asFunctionOf f _ = f