Safe Haskell | Trustworthy |
---|---|

Language | Haskell2010 |

This module provides

- specialised versions of class members e.g.
`bitraverseThese`

- non-lens variants of Data.These.Lens things, e.g
`justHere`

## Synopsis

- bimapThese :: (a -> c) -> (b -> d) -> These a b -> These c d
- mapHere :: (a -> c) -> These a b -> These c b
- mapThere :: (b -> d) -> These a b -> These a d
- bitraverseThese :: Applicative f => (a -> f c) -> (b -> f d) -> These a b -> f (These c d)
- swapThese :: These a b -> These b a
- assocThese :: These (These a b) c -> These a (These b c)
- unassocThese :: These a (These b c) -> These (These a b) c
- justThis :: These a b -> Maybe a
- justThat :: These a b -> Maybe b
- justThese :: These a b -> Maybe (a, b)
- justHere :: These a b -> Maybe a
- justThere :: These a b -> Maybe b
- catThis :: [These a b] -> [a]
- catThat :: [These a b] -> [b]
- catThese :: [These a b] -> [(a, b)]
- catHere :: [These a b] -> [a]
- catThere :: [These a b] -> [b]
- isThis :: These a b -> Bool
- isThat :: These a b -> Bool
- isThese :: These a b -> Bool
- hasHere :: These a b -> Bool
- hasThere :: These a b -> Bool
- mapThis :: (a -> a) -> These a b -> These a b
- mapThat :: (b -> b) -> These a b -> These a b
- mapThese :: ((a, b) -> (a, b)) -> These a b -> These a b

# Specialised combinators

## Bifunctor

## Bitraversable

bitraverseThese :: Applicative f => (a -> f c) -> (b -> f d) -> These a b -> f (These c d) Source #

`Bitraversable`

`bitraverse`

.

## Associativity and commutativity

unassocThese :: These a (These b c) -> These (These a b) c Source #

`These`

is associative. See `assocThese`

.

*Since: 0.8*

# Other operations

## preview

`justThis`

=`preview`

`_This`

`justThat`

=`preview`

`_That`

`justThese`

=`preview`

`_These`

`justHere`

=`preview`

`here`

`justThere`

=`preview`

`there`

justHere :: These a b -> Maybe a Source #

`>>>`

Just 'x'`justHere (This 'x')`

`>>>`

Nothing`justHere (That 'y')`

`>>>`

Just 'x'`justHere (These 'x' 'y')`

justThere :: These a b -> Maybe b Source #

`>>>`

Nothing`justThere (This 'x')`

`>>>`

Just 'y'`justThere (That 'y')`

`>>>`

Just 'y'`justThere (These 'x' 'y')`

## toListOf

`catThis`

=`toListOf`

(`folded`

.`_This`

)`catThat`

=`toListOf`

(`folded`

.`_That`

)`catThese`

=`toListOf`

(`folded`

.`_These`

)`catHere`

=`toListOf`

(`folded`

.`here`

)`catThere`

=`toListOf`

(`folded`

.`there`

)