on master help sign in
Add orphan instances module
commitcc8a8c95f4291fa65b8564ef65ab6e2ee8454276 authorDenis Redozubov <denis.redozubov@gmail.com> dateMon 22 May 2017, 18:25 (9 years ago) parent2121e46
2 files changed+23−1
schematic.cabal+1−1 src/Data/Schematic/Instances.hs+22
schematic.cabal+1−1
@@ -22,7 +22,7 @@ library
2222 , Data.Schematic.Schema
2323 , Data.Schematic.Validation
2424 , Data.Schematic.Utils
25− -- ghc-options:
25+ ghc-options: -Wall
2626 -- other-modules:
2727 default-extensions: ConstraintKinds
2828 , 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