on 9903886 help sign in
157 lines 3.1 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 #-}
10{-# language UndecidableInstances #-}
12{-# options_ghc -O0 #-}
14module Rel8.Generic.Rel8able.Test
15 ( module Rel8.Generic.Rel8able.Test
16 )
17where
19-- base
20import GHC.Generics ( Generic )
21import Prelude
23-- rel8
24import Rel8
26-- text
27import Data.Text ( Text )
30data TableTest f = TableTest
31 { foo :: Column f Bool
32 , bar :: Column f (Maybe Bool)
33 }
34 deriving stock Generic
35 deriving anyclass Rel8able
38data TablePair f = TablePair
39 { foo :: Default f Bool
40 , bars :: (Column f Text, Column f Text)
41 }
42 deriving stock Generic
43 deriving anyclass Rel8able
46data TableMaybe f = TableMaybe
47 { foo :: Column f [Maybe Bool]
48 , bars :: HMaybe f (TablePair f, TablePair f)
49 }
50 deriving stock Generic
51 deriving anyclass Rel8able
54data TableEither f = TableEither
55 { foo :: Column f Bool
56 , bars :: HEither f (HMaybe f (TablePair f, TablePair f)) (Column f Char)
57 }
58 deriving stock Generic
59 deriving anyclass Rel8able
62data TableThese f = TableThese
63 { foo :: Column f Bool
64 , bars :: HThese f (TableMaybe f) (TableEither f)
65 }
66 deriving stock Generic
67 deriving anyclass Rel8able
70data TableList f = TableList
71 { foo :: Column f Bool
72 , bars :: HList f (TableThese f)
73 }
74 deriving stock Generic
75 deriving anyclass Rel8able
78data TableNonEmpty f = TableNonEmpty
79 { foo :: Column f Bool
80 , bars :: HNonEmpty f (TableList f, TableMaybe f)
81 }
82 deriving stock Generic
83 deriving anyclass Rel8able
86data TableNest f = TableNest
87 { foo :: Column f Bool
88 , bars :: HList f (HMaybe f (TablePair f))
89 }
90 deriving stock Generic
91 deriving anyclass Rel8able
94data S3Object = S3Object
95 { bucketName :: Text
96 , objectKey :: Text
97 }
98 deriving stock Generic
101deriving via HKDT S3Object
102 instance Table Result S3Object
105deriving via HKDT S3Object
106 instance x ~ HKD S3Object Expr => ToExprs x S3Object
109data HKDSum = HKDSumA Text | HKDSumB Bool Char | HKDSumC
110 deriving stock Generic
113deriving via HKDT HKDSum
114 instance Table Result HKDSum
117deriving via HKDT HKDSum
118 instance x ~ HKD HKDSum Expr => ToExprs x HKDSum
121data HKDTest f = HKDTest
122 { s3Object :: Lift f S3Object
123 , hkdSum :: Lift f HKDSum
124 }
125 deriving stock Generic
126 deriving anyclass Rel8able
129data NonRecord f = NonRecord
130 (Column f Bool)
131 (Column f Char)
132 (Column f Char)
133 (Column f Char)
134 (Column f Char)
135 (Column f Char)
136 (Column f Char)
137 (Column f Char)
138 (Column f Char)
139 (Column f Char)
140 deriving stock Generic
141 deriving anyclass Rel8able
144data TableSum f
145 = TableSumA (Column f Bool) (Column f Text)
146 | TableSumB
147 | TableSumC (Column f Text)
148 deriving stock Generic
151data TableProduct f = TableProduct
152 { sum :: HADT f TableSum
153 , list :: TableList f
154 , foos :: HList f (HADT f TableSum, Lift f HKDSum, HKDTest f)
155 }
156 deriving stock Generic
157 deriving anyclass Rel8able