module Darcs.Patch.Witnesses.Show ( ShowDict(..) , showD , showListD , showsPrecD , Show1(..) , Show2(..) , show1 , showsPrec1 , show2 , showsPrec2 , showOp2 , appPrec ) where import Prelude () import Darcs.Prelude import Darcs.Util.Show ( appPrec ) data ShowDict a where ShowDictClass :: Show a => ShowDict a ShowDictRecord :: (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> ShowDict a showsPrecD :: ShowDict a -> Int -> a -> ShowS showsPrecD :: ShowDict a -> Int -> a -> ShowS showsPrecD ShowDictClass = Int -> a -> ShowS forall a. Show a => Int -> a -> ShowS showsPrec showsPrecD (ShowDictRecord showsPrecR :: Int -> a -> ShowS showsPrecR _ _) = Int -> a -> ShowS showsPrecR showD :: ShowDict a -> a -> String showD :: ShowDict a -> a -> String showD ShowDictClass = a -> String forall a. Show a => a -> String show showD (ShowDictRecord _ showR :: a -> String showR _) = a -> String showR showListD :: ShowDict a -> [a] -> ShowS showListD :: ShowDict a -> [a] -> ShowS showListD ShowDictClass = [a] -> ShowS forall a. Show a => [a] -> ShowS showList showListD (ShowDictRecord _ _ showListR :: [a] -> ShowS showListR) = [a] -> ShowS showListR class Show1 a where showDict1 :: ShowDict (a wX) showsPrec1 :: Show1 a => Int -> a wX -> ShowS showsPrec1 :: Int -> a wX -> ShowS showsPrec1 = ShowDict (a wX) -> Int -> a wX -> ShowS forall a. ShowDict a -> Int -> a -> ShowS showsPrecD ShowDict (a wX) forall (a :: * -> *) wX. Show1 a => ShowDict (a wX) showDict1 show1 :: Show1 a => a wX -> String show1 :: a wX -> String show1 = ShowDict (a wX) -> a wX -> String forall a. ShowDict a -> a -> String showD ShowDict (a wX) forall (a :: * -> *) wX. Show1 a => ShowDict (a wX) showDict1 class Show2 a where showDict2 :: ShowDict (a wX wY) showsPrec2 :: Show2 a => Int -> a wX wY -> ShowS showsPrec2 :: Int -> a wX wY -> ShowS showsPrec2 = ShowDict (a wX wY) -> Int -> a wX wY -> ShowS forall a. ShowDict a -> Int -> a -> ShowS showsPrecD ShowDict (a wX wY) forall (a :: * -> * -> *) wX wY. Show2 a => ShowDict (a wX wY) showDict2 show2 :: Show2 a => a wX wY -> String show2 :: a wX wY -> String show2 = ShowDict (a wX wY) -> a wX wY -> String forall a. ShowDict a -> a -> String showD ShowDict (a wX wY) forall (a :: * -> * -> *) wX wY. Show2 a => ShowDict (a wX wY) showDict2 showOp2 :: (Show2 a, Show2 b) => Int -> String -> Int -> a wW wX -> b wY wZ -> String -> String showOp2 :: Int -> String -> Int -> a wW wX -> b wY wZ -> ShowS showOp2 prec :: Int prec opstr :: String opstr d :: Int d x :: a wW wX x y :: b wY wZ y = Bool -> ShowS -> ShowS showParen (Int d Int -> Int -> Bool forall a. Ord a => a -> a -> Bool > Int prec) (ShowS -> ShowS) -> ShowS -> ShowS forall a b. (a -> b) -> a -> b $ Int -> a wW wX -> ShowS forall (a :: * -> * -> *) wX wY. Show2 a => Int -> a wX wY -> ShowS showsPrec2 (Int prec Int -> Int -> Int forall a. Num a => a -> a -> a + 1) a wW wX x ShowS -> ShowS -> ShowS forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> ShowS showString String opstr ShowS -> ShowS -> ShowS forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> b wY wZ -> ShowS forall (a :: * -> * -> *) wX wY. Show2 a => Int -> a wX wY -> ShowS showsPrec2 (Int prec Int -> Int -> Int forall a. Num a => a -> a -> a + 1) b wY wZ y