module Darcs.Patch.Witnesses.Show ( Show1(..) , Show2(..) , show1 , showsPrec1 , show2 , showsPrec2 , showOp2 , appPrec ) where import Darcs.Prelude import Darcs.Util.Show ( appPrec ) import Data.Constraint ( Dict(..) ) type ShowDict a = Dict (Show a) showsPrecD :: ShowDict a -> Int -> a -> ShowS showsPrecD :: forall a. ShowDict a -> Int -> a -> ShowS showsPrecD Dict (Show a) Dict = forall a. Show a => Int -> a -> ShowS showsPrec showD :: ShowDict a -> a -> String showD :: forall a. ShowDict a -> a -> String showD Dict (Show a) Dict = forall a. Show a => a -> String show class Show1 a where showDict1 :: Dict (Show (a wX)) default showDict1 :: Show (a wX) => ShowDict (a wX) showDict1 = forall (a :: Constraint). a => Dict a Dict showsPrec1 :: Show1 a => Int -> a wX -> ShowS showsPrec1 :: forall (a :: * -> *) wX. Show1 a => Int -> a wX -> ShowS showsPrec1 = forall a. ShowDict a -> Int -> a -> ShowS showsPrecD forall (a :: * -> *) wX. Show1 a => Dict (Show (a wX)) showDict1 show1 :: Show1 a => a wX -> String show1 :: forall (a :: * -> *) wX. Show1 a => a wX -> String show1 = forall a. ShowDict a -> a -> String showD forall (a :: * -> *) wX. Show1 a => Dict (Show (a wX)) showDict1 class Show2 a where showDict2 :: ShowDict (a wX wY) default showDict2 :: Show (a wX wY) => ShowDict (a wX wY) showDict2 = forall (a :: Constraint). a => Dict a Dict showsPrec2 :: Show2 a => Int -> a wX wY -> ShowS showsPrec2 :: forall (a :: * -> * -> *) wX wY. Show2 a => Int -> a wX wY -> ShowS showsPrec2 = forall a. ShowDict a -> Int -> a -> ShowS showsPrecD forall (a :: * -> * -> *) wX wY. Show2 a => ShowDict (a wX wY) showDict2 show2 :: Show2 a => a wX wY -> String show2 :: forall (a :: * -> * -> *) wX wY. Show2 a => a wX wY -> String show2 = forall a. ShowDict a -> a -> String showD 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 :: forall (a :: * -> * -> *) (b :: * -> * -> *) wW wX wY wZ. (Show2 a, Show2 b) => Int -> String -> Int -> a wW wX -> b wY wZ -> ShowS showOp2 Int prec String opstr Int d a wW wX x b wY wZ y = Bool -> ShowS -> ShowS showParen (Int d forall a. Ord a => a -> a -> Bool > Int prec) forall a b. (a -> b) -> a -> b $ forall (a :: * -> * -> *) wX wY. Show2 a => Int -> a wX wY -> ShowS showsPrec2 (Int prec forall a. Num a => a -> a -> a + Int 1) a wW wX x forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> ShowS showString String opstr forall b c a. (b -> c) -> (a -> b) -> a -> c . forall (a :: * -> * -> *) wX wY. Show2 a => Int -> a wX wY -> ShowS showsPrec2 (Int prec forall a. Num a => a -> a -> a + Int 1) b wY wZ y