module Unison.Hashing.V2.TermEdit (TermEdit (..)) where import Unison.Hashing.V2.Referent (Referent) import Unison.Hashing.V2.Tokenizable (Tokenizable) import Unison.Hashing.V2.Tokenizable qualified as H data TermEdit = TermEditReplace Referent | TermEditDeprecate deriving (TermEdit -> TermEdit -> Bool (TermEdit -> TermEdit -> Bool) -> (TermEdit -> TermEdit -> Bool) -> Eq TermEdit forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: TermEdit -> TermEdit -> Bool == :: TermEdit -> TermEdit -> Bool $c/= :: TermEdit -> TermEdit -> Bool /= :: TermEdit -> TermEdit -> Bool Eq, Eq TermEdit Eq TermEdit => (TermEdit -> TermEdit -> Ordering) -> (TermEdit -> TermEdit -> Bool) -> (TermEdit -> TermEdit -> Bool) -> (TermEdit -> TermEdit -> Bool) -> (TermEdit -> TermEdit -> Bool) -> (TermEdit -> TermEdit -> TermEdit) -> (TermEdit -> TermEdit -> TermEdit) -> Ord TermEdit TermEdit -> TermEdit -> Bool TermEdit -> TermEdit -> Ordering TermEdit -> TermEdit -> TermEdit 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 :: TermEdit -> TermEdit -> Ordering compare :: TermEdit -> TermEdit -> Ordering $c< :: TermEdit -> TermEdit -> Bool < :: TermEdit -> TermEdit -> Bool $c<= :: TermEdit -> TermEdit -> Bool <= :: TermEdit -> TermEdit -> Bool $c> :: TermEdit -> TermEdit -> Bool > :: TermEdit -> TermEdit -> Bool $c>= :: TermEdit -> TermEdit -> Bool >= :: TermEdit -> TermEdit -> Bool $cmax :: TermEdit -> TermEdit -> TermEdit max :: TermEdit -> TermEdit -> TermEdit $cmin :: TermEdit -> TermEdit -> TermEdit min :: TermEdit -> TermEdit -> TermEdit Ord, Int -> TermEdit -> ShowS [TermEdit] -> ShowS TermEdit -> String (Int -> TermEdit -> ShowS) -> (TermEdit -> String) -> ([TermEdit] -> ShowS) -> Show TermEdit forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> TermEdit -> ShowS showsPrec :: Int -> TermEdit -> ShowS $cshow :: TermEdit -> String show :: TermEdit -> String $cshowList :: [TermEdit] -> ShowS showList :: [TermEdit] -> ShowS Show) instance Tokenizable TermEdit where tokens :: TermEdit -> [Token] tokens (TermEditReplace Referent r) = [Word8 -> Token H.Tag Word8 0] [Token] -> [Token] -> [Token] forall a. [a] -> [a] -> [a] ++ Referent -> [Token] forall t. Tokenizable t => t -> [Token] H.tokens Referent r tokens TermEdit TermEditDeprecate = [Word8 -> Token H.Tag Word8 1]