on master help sign in
Add orphan instances module
cc8a8c9Denis Redozubov
schematic.cabal+1−1
@@ -22,7 +22,7 @@ library
22 , Data.Schematic.Schema
22 , Data.Schematic.Schema
23 , Data.Schematic.Validation
23 , Data.Schematic.Validation
24 , Data.Schematic.Utils
24 , Data.Schematic.Utils
25− -- ghc-options:
25+ ghc-options: -Wall
26 -- other-modules:
26 -- other-modules:
27 default-extensions: ConstraintKinds
27 default-extensions: ConstraintKinds
28 , DataKinds
28 , DataKinds
src/Data/Schematic/Instances.hsnew file+22
@@ -0,0 +1,22 @@
1+{-# LANGUAGE AllowAmbiguousTypes #-}
2+
3+module Data.Schematic.Instances where
4+
5+import Data.Scientific
6+import Data.Vector as V
7+import Data.Vinyl
8+import Test.SmallCheck.Series
9+
10+
11+instance Monad m => Serial m (Rec f '[]) where
12+ series = cons0 RNil
13+
14+instance (Serial m (f a), Serial m (Rec f as), Monad m)
15+ => Serial m (Rec f (a ': as)) where
16+ series = cons2 (:&)
17+
18+instance Serial m a => Serial m (V.Vector a) where
19+ series = V.fromList <$> series
20+
21+instance Monad m => Serial m Scientific where
22+ series = scientific <$> series <*> series