| Copyright | 2013-2019 Kei Hibino |
|---|---|
| License | BSD3 |
| Maintainer | ex8k.hibino@gmail.com |
| Stability | experimental |
| Portability | unknown |
| Safe Haskell | None |
| Language | Haskell2010 |
Database.Relational.Pi
Contents
Description
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 Methods (|$|) :: 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.