on master help sign in
Add AltTable and AlternativeTable instances for NullTable (#187)
commit58a7ecdc4ebe6ad0fdef359cfc6b18d85b1f55a5 authorShane <shane.obrien@circuithub.com> dateFri 1 Jul 2022, 11:38 (4 years ago) parentdf1a271
1 file changed+12
src/Rel8/Table/Null.hs+12
src/Rel8/Table/Null.hs+12
@@ -35,6 +35,10 @@ import Rel8.Table
3535 , FromExprs, fromResult, toResult
3636 , Transpose
3737 )
38+import Rel8.Table.Alternative
39+ ( AltTable, (<|>:)
40+ , AlternativeTable, emptyTable
41+ )
3842import Rel8.Table.Bool ( bool )
3943import Rel8.Table.Eq ( EqTable, eqTable )
4044import Rel8.Table.Maybe ( MaybeTable, justTable, maybeTable, nothingTable )
@@ -59,6 +63,14 @@ instance Projectable (NullTable context) where
5963 project f (NullTable a) = NullTable (project f a)
6064
6165
66+instance context ~ Expr => AltTable (NullTable context) where
67+ ma <|>: mb = bool ma mb (isNullTable ma)
68+
69+
70+instance context ~ Expr => AlternativeTable (NullTable context) where
71+ emptyTable = nullTable
72+
73+
6274instance (Table context a, Reifiable context, context ~ context') =>
6375 Table context' (NullTable context a)
6476 where