@@ -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