(original) (raw)
{-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude #-}
module GHC.Fingerprint.Type (Fingerprint(..)) where
import GHC.Base import GHC.List (length, replicate) import GHC.Num import GHC.Show import GHC.Word import Numeric (showHex)
data Fingerprint = Fingerprint {-# UNPACK #-} {-# UNPACK #-}
deriving ( Fingerprint -> Fingerprint -> Bool
(Fingerprint -> Fingerprint -> Bool)
-> (Fingerprint -> Fingerprint -> Bool) -> Eq Fingerprint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Fingerprint -> Fingerprint -> Bool
$c/= :: Fingerprint -> Fingerprint -> Bool
== :: Fingerprint -> Fingerprint -> Bool
$c== :: Fingerprint -> Fingerprint -> Bool
Eq
, Eq Fingerprint
Eq Fingerprint
-> (Fingerprint -> Fingerprint -> Ordering)
-> (Fingerprint -> Fingerprint -> Bool)
-> (Fingerprint -> Fingerprint -> Bool)
-> (Fingerprint -> Fingerprint -> Bool)
-> (Fingerprint -> Fingerprint -> Bool)
-> (Fingerprint -> Fingerprint -> Fingerprint)
-> (Fingerprint -> Fingerprint -> Fingerprint)
-> Ord Fingerprint
Fingerprint -> Fingerprint -> Bool
Fingerprint -> Fingerprint -> Ordering
Fingerprint -> Fingerprint -> Fingerprint
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
min :: Fingerprint -> Fingerprint -> Fingerprint
$cmin :: Fingerprint -> Fingerprint -> Fingerprint
max :: Fingerprint -> Fingerprint -> Fingerprint
$cmax :: Fingerprint -> Fingerprint -> Fingerprint
= :: Fingerprint -> Fingerprint -> Bool $c>= :: Fingerprint -> Fingerprint -> Bool :: Fingerprint -> Fingerprint -> Bool $c> :: Fingerprint -> Fingerprint -> Bool <= :: Fingerprint -> Fingerprint -> Bool $c<= :: Fingerprint -> Fingerprint -> Bool < :: Fingerprint -> Fingerprint -> Bool $c< :: Fingerprint -> Fingerprint -> Bool compare :: Fingerprint -> Fingerprint -> Ordering $ccompare :: Fingerprint -> Fingerprint -> Ordering Ord )
instance Show Fingerprint where show :: Fingerprint -> String show (Fingerprint Word64 w1 Word64 w2) = Word64 -> String hex16 Word64 w1 String -> ShowS forall a. [a] -> [a] -> [a] ++ Word64 -> String hex16 Word64 w2 where
[hex16](#local-6989586621679555388) :: [Word64](GHC.Word.html#Word64) -> [String](GHC.Base.html#String)
hex16 :: Word64 -> Stringhex16 Word64 i = let hex :: String hex = Word64 -> ShowS forall a. (Integral a, Show a) => a -> ShowS showHex Word64 i String "" in Int -> Char -> String forall a. Int -> a -> [a] replicate (Int 16 Int -> Int -> Int forall a. Num a => a -> a -> a - String -> Int forall a. [a] -> Int length String hex) Char '0' String -> ShowS forall a. [a] -> [a] -> [a] ++ String hex