on e150ff4 help sign in
33 lines 927 B history raw
1{-# language DataKinds #-}
2{-# language DeriveAnyClass #-}
3{-# language DeriveGeneric #-}
4{-# language DerivingStrategies #-}
5{-# language StandaloneKindSignatures #-}
7module Rel8.Schema.HTable.Either
8 ( HEitherTable(..)
9 )
10where
12-- base
13import GHC.Generics ( Generic )
14import Prelude ()
16-- rel8
17import Rel8.Kind.Necessity ( Necessity( Required ) )
18import Rel8.Schema.HTable ( HTable )
19import Rel8.Schema.HTable.Context ( HKTable )
20import Rel8.Schema.HTable.Identity ( HIdentity(..) )
21import Rel8.Schema.HTable.Nullify ( HNullify )
22import Rel8.Schema.Spec ( Spec( Spec ) )
23import Rel8.Type.Tag ( EitherTag )
26type HEitherTable :: HKTable -> HKTable -> HKTable
27data HEitherTable left right context = HEitherTable
28 { htag :: HIdentity ('Spec '["isRight"] 'Required EitherTag EitherTag) context
29 , hleft :: HNullify left context
30 , hright :: HNullify right context
31 }
32 deriving stock Generic
33 deriving anyclass HTable