module Deka.Tests.Util where import Test.QuickCheck varInt :: Int -> Gen b -> Gen b varInt = variant coarbitraryList :: (a -> Gen b -> Gen b) -> [a] -> Gen b -> Gen b coarbitraryList f ls = case ls of [] -> varInt 0 x:xs -> varInt 1 . f x . coarbitraryList f xs