Copyright | 2013-2019 Kei Hibino |
---|---|
License | BSD3 |
Maintainer | ex8k.hibino@gmail.com |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
This module defines typed projection path objects. Contains normal interfaces.
Projection path
Projection path from type r0
into type r1
.
This type also indicate key object which type is r1
for record type r0
.
Instances
HasProjection l a b => IsLabel l (Pi a b) Source # | Derive |
Defined in Database.Relational.OverloadedProjection | |
ProductIsoFunctor (Pi a) Source # | Map projection path |
Defined in Database.Relational.Pi.Unsafe (|$|) :: ProductConstructor (a0 -> b) => (a0 -> b) -> Pi a a0 -> Pi a b # | |
ProductIsoApplicative (Pi a) Source # | Compose projection path |
Defined in Database.Relational.Pi.Unsafe | |
Category Pi Source # | |
ProductIsoEmpty (Pi a) () Source # | |
PersistableWidth r0 => Show (Pi r0 r1) Source # | |
(<?.?>) :: Pi a (Maybe b) -> Pi b (Maybe c) -> Pi a (Maybe c) infixl 8 Source #
Compose projection path. Maybe
phantom functors are join
-ed like >=>
.
Low-level API
expandIndexes' :: PersistableRecordWidth a -> Pi a b -> [Int] Source #
Expand indexes from key.
expandIndexes :: PersistableWidth a => Pi a b -> [Int] Source #
Expand indexes from key. Infered width version.