on b2c47ab help sign in
rel8/src/Rel8/Table/Alternative.hs
28 lines 609 B history raw
1{-# language FlexibleContexts #-}
2{-# language StandaloneKindSignatures #-}
3{-# language TypeFamilies #-}
5module Rel8.Table.Alternative
6 ( AltTable ( (<|>:) )
7 , AlternativeTable ( emptyTable )
8 )
9where
11-- base
12import Data.Kind ( Constraint, Type )
13import Prelude ()
15-- rel8
16import Rel8.Schema.Context ( DB )
17import Rel8.Table ( Table )
20type AltTable :: (Type -> Type) -> Constraint
21class AltTable f where
22 (<|>:) :: Table DB a => f a -> f a -> f a
23 infixl 3 <|>:
26type AlternativeTable :: (Type -> Type) -> Constraint
27class AltTable f => AlternativeTable f where
28 emptyTable :: Table DB a => f a