unison-merge-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Unison.Merge.Internal.Types

Description

Internal types module to house types that would require mutual recursion at the module level if defined separately

Documentation

data ThreeWay a Source #

Constructors

ThreeWay 

Fields

Instances

Instances details
Foldable ThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

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

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

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

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

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

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

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

toList :: ThreeWay a -> [a] #

null :: ThreeWay a -> Bool #

length :: ThreeWay a -> Int #

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

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

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

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

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

Traversable ThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

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

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

Applicative ThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

pure :: a -> ThreeWay a #

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

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

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

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

Functor ThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

Semialign ThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

Unzip ThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

Zip ThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

Generic (ThreeWay a) Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Associated Types

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

Methods

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

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

type Rep (ThreeWay a) Source # 
Instance details

Defined in Unison.Merge.Internal.Types

type Rep (ThreeWay a) = D1 ('MetaData "ThreeWay" "Unison.Merge.Internal.Types" "unison-merge-0.0.0-K12d73YxIdk6Q1NPSio3eV" 'False) (C1 ('MetaCons "ThreeWay" 'PrefixI 'True) (S1 ('MetaSel ('Just "lca") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: (S1 ('MetaSel ('Just "alice") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Just "bob") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a))))

data TwoOrThreeWay a Source #

Constructors

TwoOrThreeWay 

Fields

Instances

Instances details
Foldable TwoOrThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

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

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

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

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

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

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

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

toList :: TwoOrThreeWay a -> [a] #

null :: TwoOrThreeWay a -> Bool #

length :: TwoOrThreeWay a -> Int #

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

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

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

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

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

Traversable TwoOrThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

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

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

Applicative TwoOrThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Functor TwoOrThreeWay Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Methods

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

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

Generic (TwoOrThreeWay a) Source # 
Instance details

Defined in Unison.Merge.Internal.Types

Associated Types

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

type Rep (TwoOrThreeWay a) Source # 
Instance details

Defined in Unison.Merge.Internal.Types

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