module Unison.Merge.ThreeWay ( ThreeWay (..), forgetLca, toTwoOrThreeWay, ) where import Unison.Merge.Internal.Types (ThreeWay (..)) import Unison.Merge.TwoOrThreeWay (TwoOrThreeWay (..)) import Unison.Merge.TwoWay (TwoWay (..)) forgetLca :: ThreeWay a -> TwoWay a forgetLca :: forall a. ThreeWay a -> TwoWay a forgetLca ThreeWay {a alice :: a $sel:alice:ThreeWay :: forall a. ThreeWay a -> a alice, a bob :: a $sel:bob:ThreeWay :: forall a. ThreeWay a -> a bob} = TwoWay {a alice :: a $sel:alice:TwoWay :: a alice, a bob :: a $sel:bob:TwoWay :: a bob} toTwoOrThreeWay :: ThreeWay a -> TwoOrThreeWay a toTwoOrThreeWay :: forall a. ThreeWay a -> TwoOrThreeWay a toTwoOrThreeWay ThreeWay {a $sel:alice:ThreeWay :: forall a. ThreeWay a -> a alice :: a alice, a $sel:bob:ThreeWay :: forall a. ThreeWay a -> a bob :: a bob, a lca :: a $sel:lca:ThreeWay :: forall a. ThreeWay a -> a lca} = TwoOrThreeWay {a alice :: a $sel:alice:TwoOrThreeWay :: a alice, a bob :: a $sel:bob:TwoOrThreeWay :: a bob, $sel:lca:TwoOrThreeWay :: Maybe a lca = a -> Maybe a forall a. a -> Maybe a Just a lca}