Correction about the latter part...<br><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">In the end, I would write something like the following:<br>


<br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">unGen arbitrary (mkStdGen 11) 5 :: [Int]<br>
</blockquote><br>This produces, for example, [5,1,-2,-4,2]. I also want to generate the same value for a type isomorphic to [Int].<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">



unGen arbitrary (mkStdGen 11) 5 :: List Int<br></blockquote><br>Unfortunately, this produces Cons 4 (Cons 3 (Cons (-2) (Cons 0 (Cons (-1) Nil)))): same length but different values. The Arbitrary instances are the same. </blockquote>


<div><br>The Arbitrary instance were _slightly_ different, but different enough. ;) Now, the values are isomorphic. Thankfully, purity is restored.<br><br>Sean<br></div></div>