on 9fd885f help sign in
140 lines 2.7 kB history raw
1{-# language DataKinds #-}
2{-# language DeriveAnyClass #-}
3{-# language DeriveGeneric #-}
4{-# language DerivingVia #-}
5{-# language DuplicateRecordFields #-}
6{-# language FlexibleInstances #-}
7{-# language MultiParamTypeClasses #-}
8{-# language StandaloneDeriving #-}
9{-# language TypeFamilies #-}
11{-# options_ghc -O0 #-}
13module Rel8.Generic.Rel8able.Test
14 ( module Rel8.Generic.Rel8able.Test
15 )
16where
18-- base
19import GHC.Generics ( Generic )
20import Prelude
22-- rel8
23import Rel8
25-- text
26import Data.Text ( Text )
29data Table f = Table
30 { foo :: Column f Bool
31 , bar :: Column f (Maybe Bool)
32 }
33 deriving stock Generic
34 deriving anyclass Rel8able
37data TablePair f = TablePair
38 { foo :: Default f Bool
39 , bars :: (Column f Text, Column f Text)
40 }
41 deriving stock Generic
42 deriving anyclass Rel8able
45data TableMaybe f = TableMaybe
46 { foo :: Column f [Maybe Bool]
47 , bars :: HMaybe f (TablePair f, TablePair f)
48 }
49 deriving stock Generic
50 deriving anyclass Rel8able
53data TableEither f = TableEither
54 { foo :: Column f Bool
55 , bars :: HEither f (HMaybe f (TablePair f, TablePair f)) (Column f Char)
56 }
57 deriving stock Generic
58 deriving anyclass Rel8able
61data TableThese f = TableThese
62 { foo :: Column f Bool
63 , bars :: HThese f (TableMaybe f) (TableEither f)
64 }
65 deriving stock Generic
66 deriving anyclass Rel8able
69data TableList f = TableList
70 { foo :: Column f Bool
71 , bars :: HList f (TableThese f)
72 }
73 deriving stock Generic
74 deriving anyclass Rel8able
77data TableNonEmpty f = TableNonEmpty
78 { foo :: Column f Bool
79 , bars :: HNonEmpty f (TableList f, TableMaybe f)
80 }
81 deriving stock Generic
82 deriving anyclass Rel8able
85data S3Object = S3Object
86 { bucketName :: Text
87 , objectKey :: Text
88 }
89 deriving stock Generic
92deriving via HKDT S3Object
93 instance x ~ HKD S3Object Expr => ToExprs x S3Object
96data HKDSum = HKDSumA Text | HKDSumB Bool Char
97 deriving stock Generic
100deriving via HKDT HKDSum
101 instance x ~ HKD HKDSum Expr => ToExprs x HKDSum
104data HKDTest f = HKDTest
105 { s3Object :: Lift f S3Object
106 , hkdSum :: Lift f HKDSum
107 }
108 deriving stock Generic
109 deriving anyclass Rel8able
112data NonRecord f = NonRecord
113 (Column f Bool)
114 (Column f Char)
115 (Column f Char)
116 (Column f Char)
117 (Column f Char)
118 (Column f Char)
119 (Column f Char)
120 (Column f Char)
121 (Column f Char)
122 (Column f Char)
123 deriving stock Generic
124 deriving anyclass Rel8able
127data TableSum f
128 = TableSumA (Column f Bool) (Column f Text)
129 | TableSumB
130 | TableSumC (Column f Text)
131 deriving stock Generic
132 deriving anyclass Rel8able
135data TableProduct f = TableProduct
136 { sum :: HADT f TableSum
137 , list :: TableList f
138 }
139 deriving stock Generic
140 deriving anyclass Rel8able