]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blob - src/Generics.hs
Use Generics.to_tuple in TSN.XML.MLBBoxScore.
[dead/htsn-import.git] / src / Generics.hs
1 {-# LANGUAGE DeriveGeneric #-}
2 {-# LANGUAGE NoMonomorphismRestriction #-}
3 {-# LANGUAGE TypeFamilies #-}
4
5 -- These can go if the tuple instances are accepted upstream.
6
7 {-# LANGUAGE TemplateHaskell #-}
8 {-# LANGUAGE DataKinds #-}
9 {-# OPTIONS_GHC -fno-warn-orphans #-}
10
11 module Generics (
12 Generic(..),
13 to_tuple )
14 where
15
16 import Generics.SOP ( Code, Generic(..) )
17 import Generics.SOP.TH ( deriveGeneric )
18
19 deriveGeneric ''(,,,,,,,,,,,,,,,)
20 deriveGeneric ''(,,,,,,,,,,,,,,,,)
21 deriveGeneric ''(,,,,,,,,,,,,,,,,,)
22 deriveGeneric ''(,,,,,,,,,,,,,,,,,,)
23 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,) -- 20
24 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,)
25 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,)
26 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,)
27 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,)
28 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,) -- 25
29 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,)
30 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,)
31 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,)
32 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
33 deriveGeneric ''(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) -- 30
34
35 -- | Convert a simple product type into a tuple, generically.
36 --
37 -- == __Examples__:
38 --
39 -- >>> import qualified GHC.Generics as GHC ( Generic )
40 -- >>> data Foo = Bar Int Int Int Int deriving (Show, GHC.Generic)
41 -- >>> instance Generic Foo
42 -- >>> let b = Bar 1 2 3 4
43 -- >>> to_tuple b :: (Int,Int,Int,Int)
44 -- (1,2,3,4)
45 --
46 to_tuple:: (Generic a, Generic c, Code a ~ Code c) => a -> c
47 to_tuple = to . from