unison-merge-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Unison.Merge.TwoWay

Synopsis

Documentation

data TwoWay a Source #

Constructors

TwoWay 

Fields

Instances

Instances details
Foldable TwoWay Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

fold :: Monoid m => TwoWay m -> m #

foldMap :: Monoid m => (a -> m) -> TwoWay a -> m #

foldMap' :: Monoid m => (a -> m) -> TwoWay a -> m #

foldr :: (a -> b -> b) -> b -> TwoWay a -> b #

foldr' :: (a -> b -> b) -> b -> TwoWay a -> b #

foldl :: (b -> a -> b) -> b -> TwoWay a -> b #

foldl' :: (b -> a -> b) -> b -> TwoWay a -> b #

foldr1 :: (a -> a -> a) -> TwoWay a -> a #

foldl1 :: (a -> a -> a) -> TwoWay a -> a #

toList :: TwoWay a -> [a] #

null :: TwoWay a -> Bool #

length :: TwoWay a -> Int #

elem :: Eq a => a -> TwoWay a -> Bool #

maximum :: Ord a => TwoWay a -> a #

minimum :: Ord a => TwoWay a -> a #

sum :: Num a => TwoWay a -> a #

product :: Num a => TwoWay a -> a #

Traversable TwoWay Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

traverse :: Applicative f => (a -> f b) -> TwoWay a -> f (TwoWay b) #

sequenceA :: Applicative f => TwoWay (f a) -> f (TwoWay a) #

mapM :: Monad m => (a -> m b) -> TwoWay a -> m (TwoWay b) #

sequence :: Monad m => TwoWay (m a) -> m (TwoWay a) #

Applicative TwoWay Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

pure :: a -> TwoWay a #

(<*>) :: TwoWay (a -> b) -> TwoWay a -> TwoWay b #

liftA2 :: (a -> b -> c) -> TwoWay a -> TwoWay b -> TwoWay c #

(*>) :: TwoWay a -> TwoWay b -> TwoWay b #

(<*) :: TwoWay a -> TwoWay b -> TwoWay a #

Functor TwoWay Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

fmap :: (a -> b) -> TwoWay a -> TwoWay b #

(<$) :: a -> TwoWay b -> TwoWay a #

Semialign TwoWay Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

align :: TwoWay a -> TwoWay b -> TwoWay (These a b) #

alignWith :: (These a b -> c) -> TwoWay a -> TwoWay b -> TwoWay c #

Unzip TwoWay Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

unzipWith :: (c -> (a, b)) -> TwoWay c -> (TwoWay a, TwoWay b) #

unzip :: TwoWay (a, b) -> (TwoWay a, TwoWay b) #

Zip TwoWay Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

zip :: TwoWay a -> TwoWay b -> TwoWay (a, b) #

zipWith :: (a -> b -> c) -> TwoWay a -> TwoWay b -> TwoWay c #

Monoid a => Monoid (TwoWay a) Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

mempty :: TwoWay a #

mappend :: TwoWay a -> TwoWay a -> TwoWay a #

mconcat :: [TwoWay a] -> TwoWay a #

Semigroup a => Semigroup (TwoWay a) Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

(<>) :: TwoWay a -> TwoWay a -> TwoWay a #

sconcat :: NonEmpty (TwoWay a) -> TwoWay a #

stimes :: Integral b => b -> TwoWay a -> TwoWay a #

Generic (TwoWay a) Source # 
Instance details

Defined in Unison.Merge.TwoWay

Associated Types

type Rep (TwoWay a) :: Type -> Type #

Methods

from :: TwoWay a -> Rep (TwoWay a) x #

to :: Rep (TwoWay a) x -> TwoWay a #

Show a => Show (TwoWay a) Source # 
Instance details

Defined in Unison.Merge.TwoWay

Methods

showsPrec :: Int -> TwoWay a -> ShowS #

show :: TwoWay a -> String #

showList :: [TwoWay a] -> ShowS #

type Rep (TwoWay a) Source # 
Instance details

Defined in Unison.Merge.TwoWay

type Rep (TwoWay a) = D1 ('MetaData "TwoWay" "Unison.Merge.TwoWay" "unison-merge-0.0.0-J0UFbIl68kYKm83b9dBydP" 'False) (C1 ('MetaCons "TwoWay" 'PrefixI 'True) (S1 ('MetaSel ('Just "alice") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "bob") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

justTheTerms :: TwoWay (Defns terms types) -> TwoWay terms Source #

justTheTypes :: TwoWay (Defns terms types) -> TwoWay types Source #

sequenceDefns :: TwoWay (Defns terms types) -> DefnsF TwoWay terms types Source #

swap :: TwoWay a -> TwoWay a Source #

Swap who's considered Alice and who's considered Bob. Usually nonsense, but sometimes what you need!

twoWay :: (a -> a -> b) -> TwoWay a -> b Source #

unzipMap :: Ord k => Map k (TwoWay v) -> TwoWay (Map k v) Source #

Unzip a Map k (TwoWay v) into a TwoWay (Map k v).