non-question, instance decl

Hi, experimenting with QuickCheck, I write
instance (Arbitrary e) => Arbitrary (Array Int e) where arbitrary = undefined
and I get: | Illegal instance declaration for `Arbitrary (Array Int e)' | (The instance type must be of form (T a b c) | where T is not a synonym, and a,b,c are distinct type variables) | In the instance declaration for `Arbitrary (Array Int e)' |Failed, modules loaded: QuickCheck. Okay, after experimenting a bit (more fun than reading documentation) I see what's happening: I can't instantiate a halfway specialized type, but 'Ix i => Arbitrary (Array i e)' is Okay. Unfortunately, I really depend on i being Int in my (real) definition of 'arbitrary'. I got around it by liberal doses of 'fromInteger' and a 'Num' context -- ugly, but it seems to work. I suppose there's a solid reason why my previous attempt is illegal? -kzm -- If I haven't seen further, it is by standing in the footprints of giants
participants (1)
-
ketil@ii.uib.no