Movatterモバイル変換


[0]ホーム

URL:


{-# LANGUAGE Trustworthy #-}{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, StandaloneDeriving,             MagicHash, UnboxedTuples #-}{-# OPTIONS_HADDOCK not-home #-}#include "MachDeps.h"#if SIZEOF_HSWORD == 4#define DIGITS       9#define BASE         1000000000#elif SIZEOF_HSWORD == 8#define DIGITS       18#define BASE         1000000000000000000#else#error Please define DIGITS and BASE-- DIGITS should be the largest integer such that--     10^DIGITS < 2^(SIZEOF_HSWORD * 8 - 1)-- BASE should be 10^DIGITS. Note that ^ is not available yet.#endif------------------------------------------------------------------------------- |-- Module      :  GHC.Show-- Copyright   :  (c) The University of Glasgow, 1992-2002-- License     :  see libraries/base/LICENSE---- Maintainer  :  cvs-ghc@haskell.org-- Stability   :  internal-- Portability :  non-portable (GHC Extensions)---- The 'Show' class, and related operations.-------------------------------------------------------------------------------moduleGHC.Show(Show(..),ShowS,-- Instances for Show: (), [], Bool, Ordering, Int, Char-- Show support codeshows,showChar,showString,showMultiLineString,showParen,showList__,showCommaSpace,showSpace,showLitChar,showLitString,protectEsc,intToDigit,showSignedInt,appPrec,appPrec1,-- Character operationsasciiTab,)whereimportGHC.BaseimportGHC.List((!!),foldr1,break)importGHC.NumimportGHC.Stack.Types-- | The @shows@ functions return a function that prepends the-- output 'String' to an existing 'String'.  This allows constant-time-- concatenation of results using function composition.typeShowS=String->String-- | Conversion of values to readable 'String's.---- Derived instances of 'Show' have the following properties, which-- are compatible with derived instances of 'Text.Read.Read':---- * The result of 'show' is a syntactically correct Haskell--   expression containing only constants, given the fixity--   declarations in force at the point where the type is declared.--   It contains only the constructor names defined in the data type,--   parentheses, and spaces.  When labelled constructor fields are--   used, braces, commas, field names, and equal signs are also used.---- * If the constructor is defined to be an infix operator, then--   'showsPrec' will produce infix applications of the constructor.---- * the representation will be enclosed in parentheses if the--   precedence of the top-level constructor in @x@ is less than @d@--   (associativity is ignored).  Thus, if @d@ is @0@ then the result--   is never surrounded in parentheses; if @d@ is @11@ it is always--   surrounded in parentheses, unless it is an atomic expression.---- * If the constructor is defined using record syntax, then 'show'--   will produce the record-syntax form, with the fields given in the--   same order as the original declaration.---- For example, given the declarations---- > infixr 5 :^:-- > data Tree a =  Leaf a  |  Tree a :^: Tree a---- the derived instance of 'Show' is equivalent to---- > instance (Show a) => Show (Tree a) where-- >-- >        showsPrec d (Leaf m) = showParen (d > app_prec) $-- >             showString "Leaf " . showsPrec (app_prec+1) m-- >          where app_prec = 10-- >-- >        showsPrec d (u :^: v) = showParen (d > up_prec) $-- >             showsPrec (up_prec+1) u .-- >             showString " :^: "      .-- >             showsPrec (up_prec+1) v-- >          where up_prec = 5---- Note that right-associativity of @:^:@ is ignored.  For example,---- * @'show' (Leaf 1 :^: Leaf 2 :^: Leaf 3)@ produces the string--   @\"Leaf 1 :^: (Leaf 2 :^: Leaf 3)\"@.classShowawhere{-# MINIMALshowsPrec|show#-}-- | Convert a value to a readable 'String'.---- 'showsPrec' should satisfy the law---- > showsPrec d x r ++ s  ==  showsPrec d x (r ++ s)---- Derived instances of 'Text.Read.Read' and 'Show' satisfy the following:---- * @(x,\"\")@ is an element of--   @('Text.Read.readsPrec' d ('showsPrec' d x \"\"))@.---- That is, 'Text.Read.readsPrec' parses the string produced by-- 'showsPrec', and delivers the value that 'showsPrec' started with.showsPrec::Int-- ^ the operator precedence of the enclosing-- context (a number from @0@ to @11@).-- Function application has precedence @10@.->a-- ^ the value to be converted to a 'String'->ShowS-- | A specialised variant of 'showsPrec', using precedence context-- zero, and returning an ordinary 'String'.show::a->String-- | The method 'showList' is provided to allow the programmer to-- give a specialised way of showing lists of values.-- For example, this is used by the predefined 'Show' instance of-- the 'Char' type, where values of type 'String' should be shown-- in double quotes, rather than between square brackets.showList::[a]->ShowSshowsPrecInt_axStrings=a -> Stringforall a. Show a => a -> StringshowaxString -> ShowSforall a. [a] -> [a] -> [a]++Stringsshowax=a -> ShowSforall a. Show a => a -> ShowSshowsaxString""showList[a]lsStrings=(a -> ShowS) -> [a] -> ShowSforall a. (a -> ShowS) -> [a] -> ShowSshowList__a -> ShowSforall a. Show a => a -> ShowSshows[a]lsStringsshowList__::(a->ShowS)->[a]->ShowSshowList__ :: (a -> ShowS) -> [a] -> ShowSshowList__a -> ShowS_[]Strings=String"[]"String -> ShowSforall a. [a] -> [a] -> [a]++StringsshowList__a -> ShowSshowx(ax:[a]xs)Strings=Char'['Char -> ShowSforall a. a -> [a] -> [a]:a -> ShowSshowxax([a] -> Stringshowl[a]xs)whereshowl :: [a] -> Stringshowl[]=Char']'Char -> ShowSforall a. a -> [a] -> [a]:Stringsshowl(ay:[a]ys)=Char','Char -> ShowSforall a. a -> [a] -> [a]:a -> ShowSshowxay([a] -> Stringshowl[a]ys)appPrec,appPrec1::Int-- Use unboxed stuff because we don't have overloaded numerics yetappPrec :: IntappPrec=Int# -> IntI#Int#10#-- Precedence of application:--   one more than the maximum operator precedence of 9appPrec1 :: IntappPrec1=Int# -> IntI#Int#11#-- appPrec + 1---------------------------------------------------------------- Simple Instances---------------------------------------------------------------- | @since 2.01derivinginstanceShow()-- | @since 2.01instanceShowa=>Show[a]where{-# SPECIALISEinstanceShow[String]#-}{-# SPECIALISEinstanceShow[Char]#-}{-# SPECIALISEinstanceShow[Int]#-}showsPrec :: Int -> [a] -> ShowSshowsPrecInt_=[a] -> ShowSforall a. Show a => [a] -> ShowSshowList-- | @since 2.01derivinginstanceShowBool-- | @since 2.01derivinginstanceShowOrdering-- | @since 2.01instanceShowCharwhereshowsPrec :: Int -> Char -> ShowSshowsPrecInt_Char'\''=String -> ShowSshowStringString"'\\''"showsPrecInt_Charc=Char -> ShowSshowCharChar'\''ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Char -> ShowSshowLitCharCharcShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Char -> ShowSshowCharChar'\''showList :: String -> ShowSshowListStringcs=Char -> ShowSshowCharChar'"'ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.String -> ShowSshowLitStringStringcsShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Char -> ShowSshowCharChar'"'-- | @since 2.01instanceShowIntwhereshowsPrec :: Int -> Int -> ShowSshowsPrec=Int -> Int -> ShowSshowSignedInt-- | @since 2.01instanceShowWordwhereshowsPrec :: Int -> Word -> ShowSshowsPrecInt_(W#Word#w)=Word# -> ShowSshowWordWord#wshowWord::Word#->ShowSshowWord :: Word# -> ShowSshowWordWord#w#Stringcs|Int# -> BoolisTrue#(Word#w#Word# -> Word# -> Int#`ltWord#`Word#10##)=Char# -> CharC#(Int# -> Char#chr#(Char# -> Int#ord#Char#'0'#Int# -> Int# -> Int#+#Word# -> Int#word2Int#Word#w#))Char -> ShowSforall a. a -> [a] -> [a]:Stringcs|Boolotherwise=caseInt# -> Char#chr#(Char# -> Int#ord#Char#'0'#Int# -> Int# -> Int#+#Word# -> Int#word2Int#(Word#w#Word# -> Word# -> Word#`remWord#`Word#10##))ofChar#c#->Word# -> ShowSshowWord(Word#w#Word# -> Word# -> Word#`quotWord#`Word#10##)(Char# -> CharC#Char#c#Char -> ShowSforall a. a -> [a] -> [a]:Stringcs)-- | @since 2.01derivinginstanceShowa=>Show(Maybea)-- | @since 4.11.0.0derivinginstanceShowa=>Show(NonEmptya)-- | @since 2.01instanceShowTyConwhereshowsPrec :: Int -> TyCon -> ShowSshowsPrecIntp(TyConWord#_Word#_Module_TrNametc_nameInt#_KindRep_)=Int -> TrName -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecIntpTrNametc_name-- | @since 4.9.0.0instanceShowTrNamewhereshowsPrec :: Int -> TrName -> ShowSshowsPrecInt_(TrNameSAddr#s)=String -> ShowSshowString(Addr# -> StringunpackCStringUtf8#Addr#s)showsPrecInt_(TrNameDStrings)=String -> ShowSshowStringStrings-- | @since 4.9.0.0instanceShowModulewhereshowsPrec :: Int -> Module -> ShowSshowsPrecInt_(ModuleTrNamepTrNamem)=TrName -> ShowSforall a. Show a => a -> ShowSshowsTrNamepShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.(Char':'Char -> ShowSforall a. a -> [a] -> [a]:)ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.TrName -> ShowSforall a. Show a => a -> ShowSshowsTrNamem-- | @since 4.9.0.0instanceShowCallStackwhereshowsPrec :: Int -> CallStack -> ShowSshowsPrecInt_=[(String, SrcLoc)] -> ShowSforall a. Show a => a -> ShowSshows([(String, SrcLoc)] -> ShowS)-> (CallStack -> [(String, SrcLoc)]) -> CallStack -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.CallStack -> [(String, SrcLoc)]getCallStack-- | @since 4.9.0.0derivinginstanceShowSrcLoc---------------------------------------------------------------- Show instances for the first few tuple---------------------------------------------------------------- The explicit 's' parameters are important-- Otherwise GHC thinks that "shows x" might take a lot of work to compute-- and generates defns like--      showsPrec _ (x,y) = let sx = shows x; sy = shows y in--                          \s -> showChar '(' (sx (showChar ',' (sy (showChar ')' s))))-- | @since 2.01instance(Showa,Showb)=>Show(a,b)whereshowsPrec :: Int -> (a, b) -> ShowSshowsPrecInt_(aa,bb)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb]Strings-- | @since 2.01instance(Showa,Showb,Showc)=>Show(a,b,c)whereshowsPrec :: Int -> (a, b, c) -> ShowSshowsPrecInt_(aa,bb,cc)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd)=>Show(a,b,c,d)whereshowsPrec :: Int -> (a, b, c, d) -> ShowSshowsPrecInt_(aa,bb,cc,dd)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe)=>Show(a,b,c,d,e)whereshowsPrec :: Int -> (a, b, c, d, e) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf)=>Show(a,b,c,d,e,f)whereshowsPrec :: Int -> (a, b, c, d, e, f) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg)=>Show(a,b,c,d,e,f,g)whereshowsPrec :: Int -> (a, b, c, d, e, f, g) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh)=>Show(a,b,c,d,e,f,g,h)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh,Showi)=>Show(a,b,c,d,e,f,g,h,i)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh,ii)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh,i -> ShowSforall a. Show a => a -> ShowSshowsii]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh,Showi,Showj)=>Show(a,b,c,d,e,f,g,h,i,j)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh,i -> ShowSforall a. Show a => a -> ShowSshowsii,j -> ShowSforall a. Show a => a -> ShowSshowsjj]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh,Showi,Showj,Showk)=>Show(a,b,c,d,e,f,g,h,i,j,k)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j, k) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh,i -> ShowSforall a. Show a => a -> ShowSshowsii,j -> ShowSforall a. Show a => a -> ShowSshowsjj,k -> ShowSforall a. Show a => a -> ShowSshowskk]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh,Showi,Showj,Showk,Showl)=>Show(a,b,c,d,e,f,g,h,i,j,k,l)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j, k, l) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh,i -> ShowSforall a. Show a => a -> ShowSshowsii,j -> ShowSforall a. Show a => a -> ShowSshowsjj,k -> ShowSforall a. Show a => a -> ShowSshowskk,l -> ShowSforall a. Show a => a -> ShowSshowsll]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh,Showi,Showj,Showk,Showl,Showm)=>Show(a,b,c,d,e,f,g,h,i,j,k,l,m)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j, k, l, m) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh,i -> ShowSforall a. Show a => a -> ShowSshowsii,j -> ShowSforall a. Show a => a -> ShowSshowsjj,k -> ShowSforall a. Show a => a -> ShowSshowskk,l -> ShowSforall a. Show a => a -> ShowSshowsll,m -> ShowSforall a. Show a => a -> ShowSshowsmm]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh,Showi,Showj,Showk,Showl,Showm,Shown)=>Show(a,b,c,d,e,f,g,h,i,j,k,l,m,n)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm,nn)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh,i -> ShowSforall a. Show a => a -> ShowSshowsii,j -> ShowSforall a. Show a => a -> ShowSshowsjj,k -> ShowSforall a. Show a => a -> ShowSshowskk,l -> ShowSforall a. Show a => a -> ShowSshowsll,m -> ShowSforall a. Show a => a -> ShowSshowsmm,n -> ShowSforall a. Show a => a -> ShowSshowsnn]Strings-- | @since 2.01instance(Showa,Showb,Showc,Showd,Showe,Showf,Showg,Showh,Showi,Showj,Showk,Showl,Showm,Shown,Showo)=>Show(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)whereshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> ShowSshowsPrecInt_(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm,nn,oo)Strings=[ShowS] -> ShowSshow_tuple[a -> ShowSforall a. Show a => a -> ShowSshowsaa,b -> ShowSforall a. Show a => a -> ShowSshowsbb,c -> ShowSforall a. Show a => a -> ShowSshowscc,d -> ShowSforall a. Show a => a -> ShowSshowsdd,e -> ShowSforall a. Show a => a -> ShowSshowsee,f -> ShowSforall a. Show a => a -> ShowSshowsff,g -> ShowSforall a. Show a => a -> ShowSshowsgg,h -> ShowSforall a. Show a => a -> ShowSshowshh,i -> ShowSforall a. Show a => a -> ShowSshowsii,j -> ShowSforall a. Show a => a -> ShowSshowsjj,k -> ShowSforall a. Show a => a -> ShowSshowskk,l -> ShowSforall a. Show a => a -> ShowSshowsll,m -> ShowSforall a. Show a => a -> ShowSshowsmm,n -> ShowSforall a. Show a => a -> ShowSshowsnn,o -> ShowSforall a. Show a => a -> ShowSshowsoo]Stringsshow_tuple::[ShowS]->ShowSshow_tuple :: [ShowS] -> ShowSshow_tuple[ShowS]ss=Char -> ShowSshowCharChar'('ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.(ShowS -> ShowS -> ShowS) -> [ShowS] -> ShowSforall a. (a -> a -> a) -> [a] -> afoldr1(\ShowSsShowSr->ShowSsShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Char -> ShowSshowCharChar','ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.ShowSr)[ShowS]ssShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Char -> ShowSshowCharChar')'---------------------------------------------------------------- Support code for Show---------------------------------------------------------------- | equivalent to 'showsPrec' with a precedence of 0.shows::(Showa)=>a->ShowSshows :: a -> ShowSshows=Int -> a -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt0-- | utility function converting a 'Char' to a show function that-- simply prepends the character unchanged.showChar::Char->ShowSshowChar :: Char -> ShowSshowChar=(:)-- | utility function converting a 'String' to a show function that-- simply prepends the string unchanged.showString::String->ShowSshowString :: String -> ShowSshowString=String -> ShowSforall a. [a] -> [a] -> [a](++)-- | utility function that surrounds the inner show function with-- parentheses when the 'Bool' parameter is 'True'.showParen::Bool->ShowS->ShowSshowParen :: Bool -> ShowS -> ShowSshowParenBoolbShowSp=ifBoolbthenChar -> ShowSshowCharChar'('ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.ShowSpShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Char -> ShowSshowCharChar')'elseShowSpshowSpace::ShowSshowSpace :: ShowSshowSpace={-showChar ' '-}\Stringxs->Char' 'Char -> ShowSforall a. a -> [a] -> [a]:StringxsshowCommaSpace::ShowSshowCommaSpace :: ShowSshowCommaSpace=String -> ShowSshowStringString", "-- Code specific for characters-- | Convert a character to a string using only printable characters,-- using Haskell source-language escape conventions.  For example:---- > showLitChar '\n' s  =  "\\n" ++ s--showLitChar::Char->ShowSshowLitChar :: Char -> ShowSshowLitCharCharcStrings|CharcChar -> Char -> Boolforall a. Ord a => a -> a -> Bool>Char'\DEL'=Char -> ShowSshowCharChar'\\'((Char -> Bool) -> ShowS -> ShowSprotectEscChar -> BoolisDec(Int -> ShowSforall a. Show a => a -> ShowSshows(Char -> IntordCharc))Strings)showLitCharChar'\DEL'Strings=String -> ShowSshowStringString"\\DEL"StringsshowLitCharChar'\\'Strings=String -> ShowSshowStringString"\\\\"StringsshowLitCharCharcStrings|CharcChar -> Char -> Boolforall a. Ord a => a -> a -> Bool>=Char' '=Char -> ShowSshowCharCharcStringsshowLitCharChar'\a'Strings=String -> ShowSshowStringString"\\a"StringsshowLitCharChar'\b'Strings=String -> ShowSshowStringString"\\b"StringsshowLitCharChar'\f'Strings=String -> ShowSshowStringString"\\f"StringsshowLitCharChar'\n'Strings=String -> ShowSshowStringString"\\n"StringsshowLitCharChar'\r'Strings=String -> ShowSshowStringString"\\r"StringsshowLitCharChar'\t'Strings=String -> ShowSshowStringString"\\t"StringsshowLitCharChar'\v'Strings=String -> ShowSshowStringString"\\v"StringsshowLitCharChar'\SO'Strings=(Char -> Bool) -> ShowS -> ShowSprotectEsc(Char -> Char -> Boolforall a. Eq a => a -> a -> Bool==Char'H')(String -> ShowSshowStringString"\\SO")StringsshowLitCharCharcStrings=String -> ShowSshowString(Char'\\'Char -> ShowSforall a. a -> [a] -> [a]:[String]asciiTab[String] -> Int -> Stringforall a. [a] -> Int -> a!!Char -> IntordCharc)Strings-- I've done manual eta-expansion here, because otherwise it's-- impossible to stop (asciiTab!!ord) getting floated out as an MFEshowLitString::String->ShowS-- | Same as 'showLitChar', but for strings-- It converts the string to a string using Haskell escape conventions-- for non-printable characters. Does not add double-quotes around the-- whole thing; the caller should do that.-- The main difference from showLitChar (apart from the fact that the-- argument is a string not a list) is that we must escape double-quotesshowLitString :: String -> ShowSshowLitString[]Strings=StringsshowLitString(Char'"':Stringcs)Strings=String -> ShowSshowStringString"\\\""(String -> ShowSshowLitStringStringcsStrings)showLitString(Charc:Stringcs)Strings=Char -> ShowSshowLitCharCharc(String -> ShowSshowLitStringStringcsStrings)-- Making 's' an explicit parameter makes it clear to GHC that-- showLitString has arity 2, which avoids it allocating an extra lambda-- The sticking point is the recursive call to (showLitString cs), which-- it can't figure out would be ok with arity 2.showMultiLineString::String->[String]-- | Like 'showLitString' (expand escape characters using Haskell-- escape conventions), but--   * break the string into multiple lines--   * wrap the entire thing in double quotes-- Example:  @showMultiLineString "hello\ngoodbye\nblah"@-- returns   @["\"hello\\n\\", "\\goodbye\n\\", "\\blah\""]@showMultiLineString :: String -> [String]showMultiLineStringStringstr=Char -> String -> [String]goChar'\"'Stringstrwherego :: Char -> String -> [String]goCharchStrings=case(Char -> Bool) -> String -> (String, String)forall a. (a -> Bool) -> [a] -> ([a], [a])break(Char -> Char -> Boolforall a. Eq a => a -> a -> Bool==Char'\n')Stringsof(Stringl,Char_:s' :: Strings'@(Char_:String_))->(CharchChar -> ShowSforall a. a -> [a] -> [a]:String -> ShowSshowLitStringStringlString"\\n\\")String -> [String] -> [String]forall a. a -> [a] -> [a]:Char -> String -> [String]goChar'\\'Strings'(Stringl,String"\n")->[CharchChar -> ShowSforall a. a -> [a] -> [a]:String -> ShowSshowLitStringStringlString"\\n\""](Stringl,String_)->[CharchChar -> ShowSforall a. a -> [a] -> [a]:String -> ShowSshowLitStringStringlString"\""]isDec::Char->BoolisDec :: Char -> BoolisDecCharc=CharcChar -> Char -> Boolforall a. Ord a => a -> a -> Bool>=Char'0'Bool -> Bool -> Bool&&CharcChar -> Char -> Boolforall a. Ord a => a -> a -> Bool<=Char'9'protectEsc::(Char->Bool)->ShowS->ShowSprotectEsc :: (Char -> Bool) -> ShowS -> ShowSprotectEscChar -> BoolpShowSf=ShowSfShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.ShowScontwherecont :: ShowSconts :: Strings@(Charc:String_)|Char -> BoolpCharc=String"\\&"String -> ShowSforall a. [a] -> [a] -> [a]++StringscontStrings=StringsasciiTab::[String]asciiTab :: [String]asciiTab=-- Using an array drags in the array module.  listArray ('\NUL', ' ')[String"NUL",String"SOH",String"STX",String"ETX",String"EOT",String"ENQ",String"ACK",String"BEL",String"BS",String"HT",String"LF",String"VT",String"FF",String"CR",String"SO",String"SI",String"DLE",String"DC1",String"DC2",String"DC3",String"DC4",String"NAK",String"SYN",String"ETB",String"CAN",String"EM",String"SUB",String"ESC",String"FS",String"GS",String"RS",String"US",String"SP"]-- Code specific for Ints.-- | Convert an 'Int' in the range @0@..@15@ to the corresponding single-- digit 'Char'.  This function fails on other inputs, and generates-- lower-case hexadecimal digits.intToDigit::Int->CharintToDigit :: Int -> CharintToDigit(I#Int#i)|Int# -> BoolisTrue#(Int#iInt# -> Int# -> Int#>=#Int#0#)Bool -> Bool -> Bool&&Int# -> BoolisTrue#(Int#iInt# -> Int# -> Int#<=#Int#9#)=Int -> CharunsafeChr(Char -> IntordChar'0'Int -> Int -> Intforall a. Num a => a -> a -> a+Int# -> IntI#Int#i)|Int# -> BoolisTrue#(Int#iInt# -> Int# -> Int#>=#Int#10#)Bool -> Bool -> Bool&&Int# -> BoolisTrue#(Int#iInt# -> Int# -> Int#<=#Int#15#)=Int -> CharunsafeChr(Char -> IntordChar'a'Int -> Int -> Intforall a. Num a => a -> a -> a+Int# -> IntI#Int#iInt -> Int -> Intforall a. Num a => a -> a -> a-Int10)|Boolotherwise=String -> Charforall a. String -> aerrorWithoutStackTrace(String"Char.intToDigit: not a digit "String -> ShowSforall a. [a] -> [a] -> [a]++Int -> Stringforall a. Show a => a -> Stringshow(Int# -> IntI#Int#i))showSignedInt::Int->Int->ShowSshowSignedInt :: Int -> Int -> ShowSshowSignedInt(I#Int#p)(I#Int#n)Stringr|Int# -> BoolisTrue#(Int#nInt# -> Int# -> Int#<#Int#0#)Bool -> Bool -> Bool&&Int# -> BoolisTrue#(Int#pInt# -> Int# -> Int#>#Int#6#)=Char'('Char -> ShowSforall a. a -> [a] -> [a]:Int# -> ShowSitosInt#n(Char')'Char -> ShowSforall a. a -> [a] -> [a]:Stringr)|Boolotherwise=Int# -> ShowSitosInt#nStringritos::Int#->String->Stringitos :: Int# -> ShowSitosInt#n#Stringcs|Int# -> BoolisTrue#(Int#n#Int# -> Int# -> Int#<#Int#0#)=let!(I#Int#minInt#)=IntminIntinifInt# -> BoolisTrue#(Int#n#Int# -> Int# -> Int#==#Int#minInt#)-- negateInt# minInt overflows, so we can't do that:thenChar'-'Char -> ShowSforall a. a -> [a] -> [a]:(caseInt#n#Int# -> Int# -> (# Int#, Int# #)`quotRemInt#`Int#10#of(#Int#q,Int#r#)->Int# -> ShowSitos'(Int# -> Int#negateInt#Int#q)(Int# -> ShowSitos'(Int# -> Int#negateInt#Int#r)Stringcs))elseChar'-'Char -> ShowSforall a. a -> [a] -> [a]:Int# -> ShowSitos'(Int# -> Int#negateInt#Int#n#)Stringcs|Boolotherwise=Int# -> ShowSitos'Int#n#Stringcswhereitos'::Int#->String->Stringitos' :: Int# -> ShowSitos'Int#x#Stringcs'|Int# -> BoolisTrue#(Int#x#Int# -> Int# -> Int#<#Int#10#)=Char# -> CharC#(Int# -> Char#chr#(Char# -> Int#ord#Char#'0'#Int# -> Int# -> Int#+#Int#x#))Char -> ShowSforall a. a -> [a] -> [a]:Stringcs'|Boolotherwise=caseInt#x#Int# -> Int# -> (# Int#, Int# #)`quotRemInt#`Int#10#of(#Int#q,Int#r#)->caseInt# -> Char#chr#(Char# -> Int#ord#Char#'0'#Int# -> Int# -> Int#+#Int#r)ofChar#c#->Int# -> ShowSitos'Int#q(Char# -> CharC#Char#c#Char -> ShowSforall a. a -> [a] -> [a]:Stringcs')---------------------------------------------------------------- The Integer instances for Show---------------------------------------------------------------- | @since 2.01instanceShowIntegerwhereshowsPrec :: Int -> Integer -> ShowSshowsPrecIntpIntegernStringr|IntpInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int6Bool -> Bool -> Bool&&IntegernInteger -> Integer -> Boolforall a. Ord a => a -> a -> Bool<Integer0=Char'('Char -> ShowSforall a. a -> [a] -> [a]:Integer -> ShowSintegerToStringIntegern(Char')'Char -> ShowSforall a. a -> [a] -> [a]:Stringr)-- Minor point: testing p first gives better code-- in the not-uncommon case where the p argument-- is a constant|Boolotherwise=Integer -> ShowSintegerToStringIntegernStringrshowList :: [Integer] -> ShowSshowList=(Integer -> ShowS) -> [Integer] -> ShowSforall a. (a -> ShowS) -> [a] -> ShowSshowList__(Int -> Integer -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt0)-- | @since 4.8.0.0instanceShowNaturalwhere#if defined(MIN_VERSION_integer_gmp)showsPrec :: Int -> Natural -> ShowSshowsPrecIntp(NatS#Word#w#)=Int -> Word -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecIntp(Word# -> WordW#Word#w#)#endifshowsPrecIntpNaturali=Int -> Integer -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecIntp(Natural -> IntegernaturalToIntegerNaturali)-- Divide and conquer implementation of string conversionintegerToString::Integer->String->StringintegerToString :: Integer -> ShowSintegerToStringIntegern0Stringcs0|Integern0Integer -> Integer -> Boolforall a. Ord a => a -> a -> Bool<Integer0=Char'-'Char -> ShowSforall a. a -> [a] -> [a]:Integer -> ShowSintegerToString'(-Integern0)Stringcs0|Boolotherwise=Integer -> ShowSintegerToString'Integern0Stringcs0whereintegerToString'::Integer->String->StringintegerToString' :: Integer -> ShowSintegerToString'IntegernStringcs|IntegernInteger -> Integer -> Boolforall a. Ord a => a -> a -> Bool<BASE=jhead(fromIntegern)cs|Boolotherwise=[Integer] -> ShowSjprinth(Integer -> Integer -> [Integer]jsplitf(BASE*BASE)n)cs-- Split n into digits in base p. We first split n into digits-- in base p*p and then split each of these digits into two.-- Note that the first 'digit' modulo p*p may have a leading zero-- in base p that we need to drop - this is what jsplith takes care of.-- jsplitb the handles the remaining digits.jsplitf::Integer->Integer->[Integer]jsplitf :: Integer -> Integer -> [Integer]jsplitfIntegerpIntegern|IntegerpInteger -> Integer -> Boolforall a. Ord a => a -> a -> Bool>Integern=[Integern]|Boolotherwise=Integer -> [Integer] -> [Integer]jsplithIntegerp(Integer -> Integer -> [Integer]jsplitf(IntegerpInteger -> Integer -> Integerforall a. Num a => a -> a -> a*Integerp)Integern)jsplith::Integer->[Integer]->[Integer]jsplith :: Integer -> [Integer] -> [Integer]jsplithIntegerp(Integern:[Integer]ns)=caseIntegernInteger -> Integer -> (# Integer, Integer #)`quotRemInteger`Integerpof(#Integerq,Integerr#)->ifIntegerqInteger -> Integer -> Boolforall a. Ord a => a -> a -> Bool>Integer0thenIntegerqInteger -> [Integer] -> [Integer]forall a. a -> [a] -> [a]:IntegerrInteger -> [Integer] -> [Integer]forall a. a -> [a] -> [a]:Integer -> [Integer] -> [Integer]jsplitbIntegerp[Integer]nselseIntegerrInteger -> [Integer] -> [Integer]forall a. a -> [a] -> [a]:Integer -> [Integer] -> [Integer]jsplitbIntegerp[Integer]nsjsplithInteger_[]=String -> [Integer]forall a. String -> aerrorWithoutStackTraceString"jsplith: []"jsplitb::Integer->[Integer]->[Integer]jsplitb :: Integer -> [Integer] -> [Integer]jsplitbInteger_[]=[]jsplitbIntegerp(Integern:[Integer]ns)=caseIntegernInteger -> Integer -> (# Integer, Integer #)`quotRemInteger`Integerpof(#Integerq,Integerr#)->IntegerqInteger -> [Integer] -> [Integer]forall a. a -> [a] -> [a]:IntegerrInteger -> [Integer] -> [Integer]forall a. a -> [a] -> [a]:Integer -> [Integer] -> [Integer]jsplitbIntegerp[Integer]ns-- Convert a number that has been split into digits in base BASE^2-- this includes a last splitting step and then conversion of digits-- that all fit into a machine word.jprinth::[Integer]->String->Stringjprinth :: [Integer] -> ShowSjprinth(Integern:[Integer]ns)Stringcs=caseIntegernInteger -> Integer -> (# Integer, Integer #)`quotRemInteger`BASEof(#Integerq',Integerr'#)->letq :: Intq=Integer -> Intforall a. Num a => Integer -> afromIntegerIntegerq'r :: Intr=Integer -> Intforall a. Num a => Integer -> afromIntegerIntegerr'inifIntqInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int0thenInt -> ShowSjheadIntqShowS -> ShowSforall a b. (a -> b) -> a -> b$Int -> ShowSjblockIntrShowS -> ShowSforall a b. (a -> b) -> a -> b$[Integer] -> ShowSjprintb[Integer]nsStringcselseInt -> ShowSjheadIntrShowS -> ShowSforall a b. (a -> b) -> a -> b$[Integer] -> ShowSjprintb[Integer]nsStringcsjprinth[]String_=ShowSforall a. String -> aerrorWithoutStackTraceString"jprinth []"jprintb::[Integer]->String->Stringjprintb :: [Integer] -> ShowSjprintb[]Stringcs=Stringcsjprintb(Integern:[Integer]ns)Stringcs=caseIntegernInteger -> Integer -> (# Integer, Integer #)`quotRemInteger`BASEof(#Integerq',Integerr'#)->letq :: Intq=Integer -> Intforall a. Num a => Integer -> afromIntegerIntegerq'r :: Intr=Integer -> Intforall a. Num a => Integer -> afromIntegerIntegerr'inInt -> ShowSjblockIntqShowS -> ShowSforall a b. (a -> b) -> a -> b$Int -> ShowSjblockIntrShowS -> ShowSforall a b. (a -> b) -> a -> b$[Integer] -> ShowSjprintb[Integer]nsStringcs-- Convert an integer that fits into a machine word. Again, we have two-- functions, one that drops leading zeros (jhead) and one that doesn't-- (jblock)jhead::Int->String->Stringjhead :: Int -> ShowSjheadIntnStringcs|IntnInt -> Int -> Boolforall a. Ord a => a -> a -> Bool<Int10=caseInt -> CharunsafeChr(Char -> IntordChar'0'Int -> Int -> Intforall a. Num a => a -> a -> a+Intn)ofc :: Charc@(C#Char#_)->CharcChar -> ShowSforall a. a -> [a] -> [a]:Stringcs|Boolotherwise=caseInt -> CharunsafeChr(Char -> IntordChar'0'Int -> Int -> Intforall a. Num a => a -> a -> a+Intr)ofc :: Charc@(C#Char#_)->Int -> ShowSjheadIntq(CharcChar -> ShowSforall a. a -> [a] -> [a]:Stringcs)where(Intq,Intr)=IntnInt -> Int -> (Int, Int)`quotRemInt`Int10jblock :: Int -> ShowSjblock=Int -> Int -> ShowSjblock'{- ' -}DIGITSjblock'::Int->Int->String->Stringjblock' :: Int -> Int -> ShowSjblock'IntdIntnStringcs|IntdInt -> Int -> Boolforall a. Eq a => a -> a -> Bool==Int1=caseInt -> CharunsafeChr(Char -> IntordChar'0'Int -> Int -> Intforall a. Num a => a -> a -> a+Intn)ofc :: Charc@(C#Char#_)->CharcChar -> ShowSforall a. a -> [a] -> [a]:Stringcs|Boolotherwise=caseInt -> CharunsafeChr(Char -> IntordChar'0'Int -> Int -> Intforall a. Num a => a -> a -> a+Intr)ofc :: Charc@(C#Char#_)->Int -> Int -> ShowSjblock'(IntdInt -> Int -> Intforall a. Num a => a -> a -> a-Int1)Intq(CharcChar -> ShowSforall a. a -> [a] -> [a]:Stringcs)where(Intq,Intr)=IntnInt -> Int -> (Int, Int)`quotRemInt`Int10instanceShowKindRepwhereshowsPrec :: Int -> KindRep -> ShowSshowsPrecIntd(KindRepVarIntv)=Bool -> ShowS -> ShowSshowParen(IntdInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int10)(ShowS -> ShowS) -> ShowS -> ShowSforall a b. (a -> b) -> a -> b$String -> ShowSshowStringString"KindRepVar "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> Int -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11IntvshowsPrecIntd(KindRepTyConAppTyConp[KindRep]q)=Bool -> ShowS -> ShowSshowParen(IntdInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int10)(ShowS -> ShowS) -> ShowS -> ShowSforall a b. (a -> b) -> a -> b$String -> ShowSshowStringString"KindRepTyConApp "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> TyCon -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11TyConpShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.String -> ShowSshowStringString" "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> [KindRep] -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11[KindRep]qshowsPrecIntd(KindRepAppKindReppKindRepq)=Bool -> ShowS -> ShowSshowParen(IntdInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int10)(ShowS -> ShowS) -> ShowS -> ShowSforall a b. (a -> b) -> a -> b$String -> ShowSshowStringString"KindRepApp "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> KindRep -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11KindReppShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.String -> ShowSshowStringString" "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> KindRep -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11KindRepqshowsPrecIntd(KindRepFunKindReppKindRepq)=Bool -> ShowS -> ShowSshowParen(IntdInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int10)(ShowS -> ShowS) -> ShowS -> ShowSforall a b. (a -> b) -> a -> b$String -> ShowSshowStringString"KindRepFun "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> KindRep -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11KindReppShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.String -> ShowSshowStringString" "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> KindRep -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11KindRepqshowsPrecIntd(KindRepTYPERuntimeReprep)=Bool -> ShowS -> ShowSshowParen(IntdInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int10)(ShowS -> ShowS) -> ShowS -> ShowSforall a b. (a -> b) -> a -> b$String -> ShowSshowStringString"KindRepTYPE "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> RuntimeRep -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11RuntimeReprepshowsPrecIntd(KindRepTypeLitSTypeLitSortpAddr#q)=Bool -> ShowS -> ShowSshowParen(IntdInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int10)(ShowS -> ShowS) -> ShowS -> ShowSforall a b. (a -> b) -> a -> b$String -> ShowSshowStringString"KindRepTypeLitS "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> TypeLitSort -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11TypeLitSortpShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.String -> ShowSshowStringString" "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> String -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11(Addr# -> StringunpackCString#Addr#q)showsPrecIntd(KindRepTypeLitDTypeLitSortpStringq)=Bool -> ShowS -> ShowSshowParen(IntdInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>Int10)(ShowS -> ShowS) -> ShowS -> ShowSforall a b. (a -> b) -> a -> b$String -> ShowSshowStringString"KindRepTypeLitD "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> TypeLitSort -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11TypeLitSortpShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.String -> ShowSshowStringString" "ShowS -> ShowS -> ShowSforall b c a. (b -> c) -> (a -> b) -> a -> c.Int -> String -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecInt11Stringq-- | @since 4.11.0.0derivinginstanceShowRuntimeRep-- | @since 4.11.0.0derivinginstanceShowVecCount-- | @since 4.11.0.0derivinginstanceShowVecElem-- | @since 4.11.0.0derivinginstanceShowTypeLitSort

[8]ページ先頭

©2009-2025 Movatter.jp