Skip to content
Open
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Data/These.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ module Data.These (
, fromThese
, mergeThese
, mergeTheseWith
, fromAlt

-- * Traversals
, here, there
Expand Down Expand Up @@ -109,6 +110,9 @@ mergeThese = these id id
mergeTheseWith :: (a -> c) -> (b -> c) -> (c -> c -> c) -> These a b -> c
mergeTheseWith f g op t = mergeThese op $ mapThese f g t

-- | Construct These inside an Alternative.
fromAlt :: Alternative f => f a -> f b -> f (These a b)
fromAlt x y = These <$> x <*> y <|> That <$> y <|> This <$> x

-- | A @Traversal@ of the first half of a 'These', suitable for use with @Control.Lens@.
here :: (Applicative f) => (a -> f b) -> These a t -> f (These b t)
Expand Down