relational-query-0.3.0.2: Typeful, Modular, Relational, algebraic query engine

Copyright2013 Kei Hibino
LicenseBSD3
Maintainerex8k.hibino@gmail.com
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Database.Relational.Query.Pi

Contents

Description

This module defines typed projection path objects. Contains normal interfaces.

Synopsis

Projection path

data Pi r0 r1 Source

Projection path from type r0 into type r1. This type also indicate key object which type is r1 for record type r0.

Instances

ProjectableApplicative (Pi a)

Compose projection path Pi which has record result type using applicative style.

ProjectableFunctor (Pi a)

Compose seed of projection path Pi which has record result type.

pfmap :: ProductConstructor (a -> b) => (a -> b) -> Pi r a -> Pi r b Source

Projectable fmap of Pi type.

pap :: Pi r (a -> b) -> Pi r a -> Pi r b Source

Projectable ap of Pi type.

(<.>) :: Pi a b -> Pi b c -> Pi a c infixl 8 Source

Compose projection path.

(<?.>) :: Pi a (Maybe b) -> Pi b c -> Pi a (Maybe c) infixl 8 Source

Compose projection path. Maybe phantom functor is map-ed.

(<?.?>) :: 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 >=>.

id' :: PersistableWidth a => Pi a a Source

Identity projection path.

fst' Source

Arguments

:: PersistableWidth a 
=> Pi (a, b) a

Projection path of fst.

Projection path for fst of tuple.

snd' Source

Arguments

:: (PersistableWidth a, PersistableWidth b) 
=> Pi (a, b) b

Projection path of snd.

Projection path for snd of tuple.