1{-# language DataKinds #-}
3{-# language NamedFieldPuns #-}
4{-# language StandaloneKindSignatures #-}
5{-# language TypeFamilies #-}
7module Rel8.Schema.Result
8 ( Col( Result ), Result
10 , null, nullifier, unnullifier
11 , vectorizer, unvectorizer
16import Prelude hiding ( null )
19import Rel8.Schema.Context ( Interpretation( Col ) )
20import Rel8.Schema.HTable.Identity ( HIdentity(..) )
21import Rel8.Schema.Kind ( Context )
22import Rel8.Schema.Null ( Nullify, Nullity( Null, NotNull ) )
23import Rel8.Schema.Spec ( Spec( Spec ), SSpec(..) )
30instance Interpretation Result where
31 data Col Result _spec where
32 Result :: a -> Col Result ('Spec labels necessity a)
36 => HIdentity ('Spec labels necessity a) (Col Result)
37 -> HIdentity ('Spec relabels necessity a) (Col Result)
38relabel (HIdentity (Result a)) = HIdentity (Result a)
41null :: Col Result ('Spec labels necessity (Maybe a))
46 => SSpec ('Spec labels necessity a)
47 -> Col Result ('Spec labels necessity a)
48 -> Col Result ('Spec labels necessity (Nullify a))
49nullifier SSpec {nullity} (Result a) = Result $ case nullity of
55 => SSpec ('Spec labels necessity a)
56 -> Col Result ('Spec labels necessity (Nullify a))
57 -> Maybe (Col Result ('Spec labels necessity a))
58unnullifier SSpec {nullity} (Result a) =
60 Null -> pure $ Result a
61 NotNull -> Result <$> a
64vectorizer :: Functor f
65 => SSpec ('Spec labels necessity a)
66 -> f (Col Result ('Spec labels necessity a))
67 -> Col Result ('Spec labels necessity (f a))
68vectorizer _ = Result . fmap (\(Result a) -> a)
71unvectorizer :: Functor f
72 => SSpec ('Spec labels necessity a)
73 -> Col Result ('Spec labels necessity (f a))
74 -> f (Col Result ('Spec labels necessity a))
75unvectorizer _ (Result results) = Result <$> results
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list