module Unison.Codebase.Patch (Patch (..)) where import Unison.Codebase.TermEdit (TermEdit) import Unison.Codebase.TypeEdit (TypeEdit) import Unison.Reference (Reference) import Unison.Util.Relation (Relation) import Prelude hiding (head, read, subtract) data Patch = Patch { Patch -> Relation Reference TermEdit _termEdits :: Relation Reference TermEdit, Patch -> Relation Reference TypeEdit _typeEdits :: Relation Reference TypeEdit } deriving (Patch -> Patch -> Bool (Patch -> Patch -> Bool) -> (Patch -> Patch -> Bool) -> Eq Patch forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Patch -> Patch -> Bool == :: Patch -> Patch -> Bool $c/= :: Patch -> Patch -> Bool /= :: Patch -> Patch -> Bool Eq, Eq Patch Eq Patch => (Patch -> Patch -> Ordering) -> (Patch -> Patch -> Bool) -> (Patch -> Patch -> Bool) -> (Patch -> Patch -> Bool) -> (Patch -> Patch -> Bool) -> (Patch -> Patch -> Patch) -> (Patch -> Patch -> Patch) -> Ord Patch Patch -> Patch -> Bool Patch -> Patch -> Ordering Patch -> Patch -> Patch 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 :: Patch -> Patch -> Ordering compare :: Patch -> Patch -> Ordering $c< :: Patch -> Patch -> Bool < :: Patch -> Patch -> Bool $c<= :: Patch -> Patch -> Bool <= :: Patch -> Patch -> Bool $c> :: Patch -> Patch -> Bool > :: Patch -> Patch -> Bool $c>= :: Patch -> Patch -> Bool >= :: Patch -> Patch -> Bool $cmax :: Patch -> Patch -> Patch max :: Patch -> Patch -> Patch $cmin :: Patch -> Patch -> Patch min :: Patch -> Patch -> Patch Ord, Int -> Patch -> ShowS [Patch] -> ShowS Patch -> String (Int -> Patch -> ShowS) -> (Patch -> String) -> ([Patch] -> ShowS) -> Show Patch forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Patch -> ShowS showsPrec :: Int -> Patch -> ShowS $cshow :: Patch -> String show :: Patch -> String $cshowList :: [Patch] -> ShowS showList :: [Patch] -> ShowS Show)