unison-merge-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Unison.Merge

Synopsis

Documentation

Decl coherency checks

data PartialDeclNameLookup Source #

Like a DeclNameLookup, but "partial" / more lenient - because we don't require the LCA of a merge to have a full DeclNameLookup.

Instances

Instances details
Generic PartialDeclNameLookup Source # 
Instance details

Defined in Unison.Merge.PartialDeclNameLookup

Associated Types

type Rep PartialDeclNameLookup :: Type -> Type #

type Rep PartialDeclNameLookup Source # 
Instance details

Defined in Unison.Merge.PartialDeclNameLookup

type Rep PartialDeclNameLookup = D1 ('MetaData "PartialDeclNameLookup" "Unison.Merge.PartialDeclNameLookup" "unison-merge-0.0.0-J0UFbIl68kYKm83b9dBydP" 'False) (C1 ('MetaCons "PartialDeclNameLookup" 'PrefixI 'True) (S1 ('MetaSel ('Just "constructorToDecl") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map Name Name)) :*: S1 ('MetaSel ('Just "declToConstructors") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map Name [Maybe Name]))))

data IncoherentDeclReason Source #

Constructors

IncoherentDeclReason'ConstructorAlias !Name !Name !Name

A second naming of a constructor was discovered underneath a decl's name, e.g.

Foo#Foo Foo.Bar0 Foo.Some.Other.Name.For.Bar0

IncoherentDeclReason'MissingConstructorName !Name 
IncoherentDeclReason'NestedDeclAlias !Name !Name

A second naming of a decl was discovered underneath its name, e.g.

Foo#Foo Foo.Bar#Foo

IncoherentDeclReason'StrayConstructor !TypeReferenceId !Name 

lenientCheckDeclCoherency :: Nametree (DefnsF (Map NameSegment) Referent TypeReference) -> Map TypeReferenceId Int -> PartialDeclNameLookup Source #

A lenient variant of checkDeclCoherency - so lenient it can't even fail! It returns partial decl name lookup, which doesn't require a name for every constructor, and allows a constructor with a nameless decl.

This function exists merely to extract a best-effort name mapping for the LCA of a merge. We require Alice and Bob to have coherent decls, but their LCA is out of the user's control and may have incoherent decls, and whether or not it does, we still need to compute *some* syntactic hash for its decls.

data IncoherentDeclReasons Source #

Instances

Instances details
Generic IncoherentDeclReasons Source # 
Instance details

Defined in Unison.Merge.DeclCoherencyCheck

Associated Types

type Rep IncoherentDeclReasons :: Type -> Type #

Eq IncoherentDeclReasons Source # 
Instance details

Defined in Unison.Merge.DeclCoherencyCheck

type Rep IncoherentDeclReasons Source # 
Instance details

Defined in Unison.Merge.DeclCoherencyCheck

type Rep IncoherentDeclReasons = D1 ('MetaData "IncoherentDeclReasons" "Unison.Merge.DeclCoherencyCheck" "unison-merge-0.0.0-J0UFbIl68kYKm83b9dBydP" 'False) (C1 ('MetaCons "IncoherentDeclReasons" 'PrefixI 'True) ((S1 ('MetaSel ('Just "constructorAliases") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Name, Name, Name)]) :*: S1 ('MetaSel ('Just "missingConstructorNames") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Name])) :*: (S1 ('MetaSel ('Just "nestedDeclAliases") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Name, Name)]) :*: S1 ('MetaSel ('Just "strayConstructors") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(TypeReferenceId, Name)]))))

checkAllDeclCoherency :: forall m. Monad m => (TypeReferenceId -> m Int) -> Nametree (DefnsF (Map NameSegment) Referent TypeReference) -> m (Either IncoherentDeclReasons DeclNameLookup) Source #

Like checkDeclCoherency, but returns info about all of the incoherent decls found, not just the first.

Types

data CombinedDiffOp a Source #

The combined result of two diffs on the same thing.

Instances

Instances details
Functor CombinedDiffOp Source # 
Instance details

Defined in Unison.Merge.CombineDiffs

Methods

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

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

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

Defined in Unison.Merge.CombineDiffs

data DiffOp a Source #

A diff operation is one of:

  • An add (where nothing was)
  • A delete (of the thing that was)
  • An update (from old to new)

Constructors

DiffOp'Add !a 
DiffOp'Delete !a 
DiffOp'Update !(Updated a) 

Instances

Instances details
Functor DiffOp Source # 
Instance details

Defined in Unison.Merge.DiffOp

Methods

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

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

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

Defined in Unison.Merge.DiffOp

Methods

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

show :: DiffOp a -> String #

showList :: [DiffOp a] -> ShowS #

data EitherWay a Source #

Alice exclusive-or Bob?

Constructors

Alice a 
Bob a 

Instances

Instances details
Functor EitherWay Source # 
Instance details

Defined in Unison.Merge.EitherWay

Methods

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

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

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

Defined in Unison.Merge.EitherWay

Eq a => Eq (EitherWay a) Source # 
Instance details

Defined in Unison.Merge.EitherWay

Methods

(==) :: EitherWay a -> EitherWay a -> Bool #

(/=) :: EitherWay a -> EitherWay a -> Bool #

data EitherWayI a Source #

Alice inclusive-or Bob?

Constructors

OnlyAlice a 
OnlyBob a 
AliceAndBob a 

Instances

Instances details
Functor EitherWayI Source # 
Instance details

Defined in Unison.Merge.EitherWayI

Methods

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

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

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

Defined in Unison.Merge.EitherWayI

data LibdepDiffOp a Source #

Constructors

AddLibdep !a 
AddBothLibdeps !a !a 
DeleteLibdep 

data Synhashed a Source #

A small utility type that represents a syntactic-hashed thing.

The Eq and Ord instances only compares syntactic hashes.

Constructors

Synhashed 

Fields

Instances

Instances details
Functor Synhashed Source # 
Instance details

Defined in Unison.Merge.Synhashed

Methods

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

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

Generic (Synhashed a) Source # 
Instance details

Defined in Unison.Merge.Synhashed

Associated Types

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

Methods

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

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

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

Defined in Unison.Merge.Synhashed

Eq (Synhashed a) Source # 
Instance details

Defined in Unison.Merge.Synhashed

Methods

(==) :: Synhashed a -> Synhashed a -> Bool #

(/=) :: Synhashed a -> Synhashed a -> Bool #

Ord (Synhashed a) Source # 
Instance details

Defined in Unison.Merge.Synhashed

type Rep (Synhashed a) Source # 
Instance details

Defined in Unison.Merge.Synhashed

type Rep (Synhashed a) = D1 ('MetaData "Synhashed" "Unison.Merge.Synhashed" "unison-merge-0.0.0-J0UFbIl68kYKm83b9dBydP" 'False) (C1 ('MetaCons "Synhashed" 'PrefixI 'True) (S1 ('MetaSel ('Just "hash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Hash) :*: S1 ('MetaSel ('Just "value") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))

data ThreeWay a Source #

Constructors

ThreeWay 

Fields

Instances

Instances details
Foldable ThreeWay Source # 
Instance details

Defined in Unison.Merge.ThreeWay

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.ThreeWay

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.ThreeWay

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.ThreeWay

Methods

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

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

Semialign ThreeWay Source # 
Instance details

Defined in Unison.Merge.ThreeWay

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.ThreeWay

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.ThreeWay

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.ThreeWay

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.ThreeWay

type Rep (ThreeWay a) = D1 ('MetaData "ThreeWay" "Unison.Merge.ThreeWay" "unison-merge-0.0.0-J0UFbIl68kYKm83b9dBydP" '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.TwoOrThreeWay

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.TwoOrThreeWay

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) #

Functor TwoOrThreeWay Source # 
Instance details

Defined in Unison.Merge.TwoOrThreeWay

Methods

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

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

Generic (TwoOrThreeWay a) Source # 
Instance details

Defined in Unison.Merge.TwoOrThreeWay

Associated Types

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

type Rep (TwoOrThreeWay a) Source # 
Instance details

Defined in Unison.Merge.TwoOrThreeWay

type Rep (TwoOrThreeWay a) = D1 ('MetaData "TwoOrThreeWay" "Unison.Merge.TwoOrThreeWay" "unison-merge-0.0.0-J0UFbIl68kYKm83b9dBydP" '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))))

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)))

data TwoWayI a Source #

"Two-way inclusive".

Constructors

TwoWayI 

Fields

Instances

Instances details
Foldable TwoWayI Source # 
Instance details

Defined in Unison.Merge.TwoWayI

Methods

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

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

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

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

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

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

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

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

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

toList :: TwoWayI a -> [a] #

null :: TwoWayI a -> Bool #

length :: TwoWayI a -> Int #

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

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

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

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

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

Applicative TwoWayI Source # 
Instance details

Defined in Unison.Merge.TwoWayI

Methods

pure :: a -> TwoWayI a #

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

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

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

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

Functor TwoWayI Source # 
Instance details

Defined in Unison.Merge.TwoWayI

Methods

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

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

Semialign TwoWayI Source # 
Instance details

Defined in Unison.Merge.TwoWayI

Methods

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

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

Zip TwoWayI Source # 
Instance details

Defined in Unison.Merge.TwoWayI

Methods

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

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

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

Defined in Unison.Merge.TwoWayI

Methods

mempty :: TwoWayI a #

mappend :: TwoWayI a -> TwoWayI a -> TwoWayI a #

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

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

Defined in Unison.Merge.TwoWayI

Methods

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

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

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

Generic (TwoWayI a) Source # 
Instance details

Defined in Unison.Merge.TwoWayI

Associated Types

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

Methods

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

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

type Rep (TwoWayI a) Source # 
Instance details

Defined in Unison.Merge.TwoWayI

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

data Unconflicts v Source #

Constructors

Unconflicts 

Fields

Instances

Instances details
Foldable Unconflicts Source # 
Instance details

Defined in Unison.Merge.Unconflicts

Methods

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

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

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

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

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

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

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

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

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

toList :: Unconflicts a -> [a] #

null :: Unconflicts a -> Bool #

length :: Unconflicts a -> Int #

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

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

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

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

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

Functor Unconflicts Source # 
Instance details

Defined in Unison.Merge.Unconflicts

Methods

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

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

Generic (Unconflicts v) Source # 
Instance details

Defined in Unison.Merge.Unconflicts

Associated Types

type Rep (Unconflicts v) :: Type -> Type #

Methods

from :: Unconflicts v -> Rep (Unconflicts v) x #

to :: Rep (Unconflicts v) x -> Unconflicts v #

type Rep (Unconflicts v) Source # 
Instance details

Defined in Unison.Merge.Unconflicts

type Rep (Unconflicts v) = D1 ('MetaData "Unconflicts" "Unison.Merge.Unconflicts" "unison-merge-0.0.0-J0UFbIl68kYKm83b9dBydP" 'False) (C1 ('MetaCons "Unconflicts" 'PrefixI 'True) (S1 ('MetaSel ('Just "adds") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (TwoWayI (Map Name v))) :*: (S1 ('MetaSel ('Just "deletes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (TwoWayI (Map Name v))) :*: S1 ('MetaSel ('Just "updates") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (TwoWayI (Map Name v))))))

data Updated a Source #

An updated thing.

Constructors

Updated 

Fields

Instances

Instances details
Functor Updated Source # 
Instance details

Defined in Unison.Merge.Updated

Methods

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

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

Generic (Updated a) Source # 
Instance details

Defined in Unison.Merge.Updated

Associated Types

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

Methods

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

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

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

Defined in Unison.Merge.Updated

Methods

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

show :: Updated a -> String #

showList :: [Updated a] -> ShowS #

type Rep (Updated a) Source # 
Instance details

Defined in Unison.Merge.Updated

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