packages feed

generic-random-0.3.0.0: test/Test/Tree.hs

{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
module Test.Tree where

import Data.Data ( Data )
import GHC.Generics ( Generic )
import Test.QuickCheck

import Generic.Random.Generic

data T = L | N T T
  deriving (Eq, Ord, Show, Data, Generic)

size :: T -> Int
size (N l r) = 1 + size l + size r
size L = 0

instance Arbitrary T where
  arbitrary = genericArbitraryFrequency [9, 8]