@@ -30,8 +30,16 @@ import Data.Lazy (Lazy, defer, force)
3030import Data.List (List )
3131import Data.List.NonEmpty (NonEmptyList (..))
3232import Data.Maybe (Maybe (..), fromJust )
33+ import Data.Monoid.Additive (Additive (..))
34+ import Data.Monoid.Conj (Conj (..))
35+ import Data.Monoid.Disj (Disj (..))
36+ import Data.Monoid.Dual (Dual (..))
37+ import Data.Monoid.Endo (Endo (..))
38+ import Data.Monoid.Multiplicative (Multiplicative (..))
3339import Data.Newtype (wrap )
3440import Data.NonEmpty (NonEmpty (..))
41+ import Data.Semigroup.First (First (..))
42+ import Data.Semigroup.Last (Last (..))
3543import Data.String (split )
3644import Data.String.CodeUnits (charAt , fromCharArray )
3745import Data.String.NonEmpty (NonEmptyString )
@@ -143,6 +151,30 @@ instance coarbFunction :: (Arbitrary a, Coarbitrary b) => Coarbitrary (a -> b) w
143151 xs <- arbitrary
144152 coarbitrary (map f (xs :: Array a )) gen
145153
154+ instance arbFirst :: Arbitrary a => Arbitrary (First a ) where
155+ arbitrary = First <$> arbitrary
156+
157+ instance arbLast :: Arbitrary a => Arbitrary (Last a ) where
158+ arbitrary = Last <$> arbitrary
159+
160+ instance arbAdditive :: Arbitrary a => Arbitrary (Additive a ) where
161+ arbitrary = Additive <$> arbitrary
162+
163+ instance arbMultiplicative :: Arbitrary a => Arbitrary (Multiplicative a ) where
164+ arbitrary = Multiplicative <$> arbitrary
165+
166+ instance arbConj :: Arbitrary a => Arbitrary (Conj a ) where
167+ arbitrary = Conj <$> arbitrary
168+
169+ instance arbDisj :: Arbitrary a => Arbitrary (Disj a ) where
170+ arbitrary = Disj <$> arbitrary
171+
172+ instance arbDual :: Arbitrary a => Arbitrary (Dual a ) where
173+ arbitrary = Dual <$> arbitrary
174+
175+ instance arbEndo :: Arbitrary (c a a ) => Arbitrary (Endo c a ) where
176+ arbitrary = Endo <$> arbitrary
177+
146178instance arbTuple :: (Arbitrary a , Arbitrary b ) => Arbitrary (Tuple a b ) where
147179 arbitrary = Tuple <$> arbitrary <*> arbitrary
148180
0 commit comments