type-combinators-0.1.2.1: A collection of data types for type-level programming

CopyrightCopyright (C) 2015 Kyle Carter
LicenseBSD3
MaintainerKyle Carter <kylcarte@indiana.edu>
Stabilityexperimental
PortabilityRankNTypes
Safe HaskellSafe
LanguageHaskell2010

Type.Family.Tuple

Description

Type-level pairs and triples, along with some convenient aliases and type families over them.

Documentation

type (#) = (,) infixr 6 Source

type family Fst p :: k Source

Equations

Fst `(a, b)` = a 

type family Snd p :: l Source

Equations

Snd `(a, b)` = b 

type family f <$> a :: (m, l) infixr 4 Source

Equations

f <$> (a # b) = a # f b 

type family f <&> a :: (m, l) infixr 4 Source

Equations

(r # f) <&> a = r # f a 

type family f <*> a :: (m, l) infixr 4 Source

Equations

(r # f) <*> (s # a) = (r <> s) # f a 

type family Fst3 p :: k Source

Equations

Fst3 `(a, b, c)` = a 

type family Snd3 p :: l Source

Equations

Snd3 `(a, b, c)` = b 

type family Thd3 p :: m Source

Equations

Thd3 `(a, b, c)` = c