on 6ecc65f help sign in
126 lines 2.5 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-- higgledy
23import Data.Generic.HKD ( HKD )
25-- rel8
26import Rel8
28-- text
29import Data.Text ( Text )
32data Table f = Table
33 { foo :: Column f Bool
34 , bar :: Column f (Maybe Bool)
35 }
36 deriving stock Generic
37 deriving anyclass Rel8able
40data TablePair f = TablePair
41 { foo :: Default f Bool
42 , bars :: (Column f Text, Column f Text)
43 }
44 deriving stock Generic
45 deriving anyclass Rel8able
48data TableMaybe f = TableMaybe
49 { foo :: Column f [Maybe Bool]
50 , bars :: HMaybe f (TablePair f, TablePair f)
51 }
52 deriving stock Generic
53 deriving anyclass Rel8able
56data TableEither f = TableEither
57 { foo :: Column f Bool
58 , bars :: HEither f (HMaybe f (TablePair f, TablePair f)) (Column f Char)
59 }
60 deriving stock Generic
61 deriving anyclass Rel8able
64data TableThese f = TableThese
65 { foo :: Column f Bool
66 , bars :: HThese f (TableMaybe f) (TableEither f)
67 }
68 deriving stock Generic
69 deriving anyclass Rel8able
72data TableList f = TableList
73 { foo :: Column f Bool
74 , bars :: HList f (TableThese f)
75 }
76 deriving stock Generic
77 deriving anyclass Rel8able
80data TableNonEmpty f = TableNonEmpty
81 { foo :: Column f Bool
82 , bars :: HNonEmpty f (TableList f, TableMaybe f)
83 }
84 deriving stock Generic
85 deriving anyclass Rel8able
88data S3Object = S3Object
89 { bucketName :: Text
90 , objectKey :: Text
91 }
92 deriving stock Generic
95deriving via HKDT S3Object
96 instance x ~ HKD S3Object Expr => ToExprs x S3Object
99newtype HKDTest f = HKDTest
100 { s3Object :: Lift f S3Object
101 }
102 deriving stock Generic
103 deriving anyclass Rel8able
106data NonRecord f = NonRecord
107 (Column f Bool)
108 (Column f Char)
109 (Column f Char)
110 (Column f Char)
111 (Column f Char)
112 (Column f Char)
113 (Column f Char)
114 (Column f Char)
115 (Column f Char)
116 (Column f Char)
117 deriving stock Generic
118 deriving anyclass Rel8able
121data TableSum f
122 = TableSumA (Column f Bool) (Column f Text)
123 | TableSumB
124 | TableSumC (Column f Text)
125 deriving stock Generic
126 deriving anyclass Rel8able