I've been using the binary library, and would like to test whether my put and get functions are inverses. I thought of using QuickCheck but it is not clear how I can write the necessary property. I skimmed Claessen, Hughes, "Testing monadic code with QuickCheck", but their examples require a lot of extra work (e.g. their queue example requires an AST for a mini-queue language). Am I missing something obvious?