내 프로그램에서 Data.List.Vector를 사용 중입니다. 이제 quickCheck를 사용하고 싶습니다. 그러나, 거기에 대한 인스턴스가 없습니다. 이미 [더블]에 대한 임의의가 있기 때문에, 나는 내가 좋아하는 일을 할 수 있다고 생각Data.List.Vector를 임의의 멤버로 쉽게 만드는 방법은 무엇입니까?
instance Arbitrary V.Vector Double where
arbitrary = V.fromList (arbitrary :: [Double])
아아, GHC은이 모든 것을 좋아하지 않는다 :
`Arbitrary' is applied to too many type arguments
In the instance declaration for `Arbitrary V.Vector Double'
을 나는 또한 단지를 만들 수있는 것 같아요 [Double]을 취하고 V.fromList를 사용하는 속성 집합이지만 지루한 것처럼 보입니다. ,
instance (Arbitrary a) => Arbitrary (V.Vector a) where
arbitrary = fmap V.fromList arbitrary
참고가 fmap
arbitrary
때문에 유형 Gen a
의 값이 필요합니다