module Unison.Codebase.Editor.Output.PushPull where

data PushPull = Push | Pull deriving (PushPull -> PushPull -> Bool
(PushPull -> PushPull -> Bool)
-> (PushPull -> PushPull -> Bool) -> Eq PushPull
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PushPull -> PushPull -> Bool
== :: PushPull -> PushPull -> Bool
$c/= :: PushPull -> PushPull -> Bool
/= :: PushPull -> PushPull -> Bool
Eq, Eq PushPull
Eq PushPull =>
(PushPull -> PushPull -> Ordering)
-> (PushPull -> PushPull -> Bool)
-> (PushPull -> PushPull -> Bool)
-> (PushPull -> PushPull -> Bool)
-> (PushPull -> PushPull -> Bool)
-> (PushPull -> PushPull -> PushPull)
-> (PushPull -> PushPull -> PushPull)
-> Ord PushPull
PushPull -> PushPull -> Bool
PushPull -> PushPull -> Ordering
PushPull -> PushPull -> PushPull
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PushPull -> PushPull -> Ordering
compare :: PushPull -> PushPull -> Ordering
$c< :: PushPull -> PushPull -> Bool
< :: PushPull -> PushPull -> Bool
$c<= :: PushPull -> PushPull -> Bool
<= :: PushPull -> PushPull -> Bool
$c> :: PushPull -> PushPull -> Bool
> :: PushPull -> PushPull -> Bool
$c>= :: PushPull -> PushPull -> Bool
>= :: PushPull -> PushPull -> Bool
$cmax :: PushPull -> PushPull -> PushPull
max :: PushPull -> PushPull -> PushPull
$cmin :: PushPull -> PushPull -> PushPull
min :: PushPull -> PushPull -> PushPull
Ord, Int -> PushPull -> ShowS
[PushPull] -> ShowS
PushPull -> String
(Int -> PushPull -> ShowS)
-> (PushPull -> String) -> ([PushPull] -> ShowS) -> Show PushPull
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PushPull -> ShowS
showsPrec :: Int -> PushPull -> ShowS
$cshow :: PushPull -> String
show :: PushPull -> String
$cshowList :: [PushPull] -> ShowS
showList :: [PushPull] -> ShowS
Show)

fold :: a -> a -> PushPull -> a
fold :: forall a. a -> a -> PushPull -> a
fold a
push a
pull PushPull
p = case PushPull
p of
  PushPull
Push -> a
push
  PushPull
Pull -> a
pull