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

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

 Source # Compose projection path Pi which has record result type using applicative style. Methods(|*|) :: Pi a (a -> b) -> Pi a a -> Pi a b Source # Source # Compose seed of projection path Pi which has record result type. Methods(|\$|) :: ProductConstructor (a -> b) => (a -> b) -> Pi a a -> Pi a b Source # Source # Methodsid :: cat a a #(.) :: cat b c -> cat a b -> cat a c # PersistableWidth r0 => Show (Pi r0 r1) Source # MethodsshowsPrec :: Int -> Pi r0 r1 -> ShowS #show :: Pi r0 r1 -> String #showList :: [Pi r0 r1] -> ShowS #

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.

pzero :: Pi a () Source #

Pi with zero width which projects to unit

(<.>) :: 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' :: Pi a a Source #

Identity projection path.

Arguments

 :: PersistableWidth a => Pi (a, b) a Projection path of fst.

Projection path for fst of tuple.

Arguments

 :: (PersistableWidth a, PersistableWidth b) => Pi (a, b) b Projection path of snd.

Projection path for snd of tuple.