on bc15d25 help sign in
36 lines 979 B history raw
1{-# LANGUAGE NamedFieldPuns #-}
2{-# LANGUAGE LambdaCase #-}
3{-# LANGUAGE TypeFamilies #-}
4{-# LANGUAGE KindSignatures #-}
5{-# language DataKinds #-}
6{-# language DeriveAnyClass #-}
7{-# language DeriveGeneric #-}
8{-# language DerivingStrategies #-}
9{-# language StandaloneKindSignatures #-}
11module Rel8.Schema.HTable.Maybe
12 ( HMaybeTable(..)
13 )
14where
16-- base
17import GHC.Generics ( Generic )
18import Prelude
20-- rel8
21import Rel8.Kind.Necessity ( Necessity( Required ) )
22import Rel8.Schema.HTable ( HTable )
23import Rel8.Schema.HTable.Identity ( HIdentity(..) )
24import qualified Rel8.Schema.Kind as K
25import Rel8.Schema.Spec ( Spec( Spec ) )
26import Rel8.Type.Tag ( MaybeTag )
27import Rel8.Schema.HTable.Nullify ( HNullify )
30type HMaybeTable :: K.HTable -> K.HTable
31data HMaybeTable table context = HMaybeTable
32 { htag :: HIdentity ('Spec '["isJust"] 'Required (Maybe MaybeTag)) context
33 , hjust :: HNullify table context
34 }
35 deriving stock Generic
36 deriving anyclass HTable