Hi, have the following type

data BinomialHeap a = EmptyHeap | Node a Int (BinomialHeap a)

and wanted to create a test generator with type ‘a’ as an Int for example

hence had 

newtype BinominalHeapInt = BinominalHeap Int deriving (Eq, Show)

But struggling to get the generator correct, currently have 

instance Arbitrary BinominalHeapInt where
arbitrary = sized heap' where
heap' 0 = return EmptyHeap
heap' n | n>0 = oneof [return EmptyHeap, liftM3 Node arbitrary arbitrary subnode]
where subnode = heap' (n `div` 2)

But it complains 

    Expected type: Int -> Gen BinominalHeapInt
      Actual type: Int -> Gen (BinomialHeap a1)

in sized heap’

Any pointers ?

Thanks