h$@ &      !"#$% Safe-Inferred 8 ?formatnSign componentformatnDecomposition of a Double into the components that are needed to determine significant figure formatting.eliding type changes, the relationship between a Double and a SigFig is:) x == sign * figures * 10^{exponent} formatnsignformatn+significant figures expressed as an Integerformatn'the power of 10 exponent given figures.formatn+Wrapper for the various formatting options.Nothing in the context of these constructors means do not perform and significant figure adjustments to the numbers (or decimal figures with respect to FormatFixed).formatnThe official formatdefaultFormatNFormatComma (Just 2)formatnrun a formatN defaultFormatN 1234"1,200"formatn?Format to x decimal places with no significant figure rounding.fixed (Just 2) 100"100.00"fixed (Just 2) 0.001"0.00"formatnconvert from a Double to a toSigFig (Just 2) 12345SigFig {sign = SigFigPos, figures = 12, exponent = 2}\x -> let (SigFig s fs e) = toSigFig Nothing x in let x' = ((if (s==SigFigNeg) then (-1.0) else 1.0) * fromIntegral fs * 10.0**fromIntegral e) in (x==0 || abs (x/x'-1) < 1e-6)formatnconvert from a  to a Double"fromSigFig (SigFig SigFigPos 12 2)1200.0fromSigFig . toSigFig Nothing may not be isomorphicformatnFormat in exponential style, maybe with significant figure rounding.expt Nothing 1245 "1.245e3"expt (Just 3) 1245"1.24e3"expt (Just 3) 0.1245 "1.24e-1"formatnFormat in decimal style, and maybe round to n significant figures.decimal Nothing 1.2345e-2 "0.012345"decimal (Just 2) 0.012345"0.012"decimal (Just 2) 12345"12000"formatnFormat between 0.001 and 1,000,000 using decimal style and exponential style outside this range.prec (Just 2) 0.00234"0.0023"prec (Just 2) 0.000023"2.3e-5"prec (Just 2) 123"120"prec (Just 2) 123456"120000"prec (Just 2) 1234567"1.2e6"formatnFormat using comma separators for numbers above 1,000 but below 1 million, otherwise use prec style.comma (Just 3) 1234"1,230"formatn.Format as dollars, always using comma notationdollar (Just 3) 1234"$1,230"dollar (Just 2) 0.01234"$0.012"formatn+Format as a percentage using decimal style.percent (Just 2) 0.001234"0.12%"formatnProvide formatted text for a list of numbers so that they are just distinguished. For example, precision comma (Just 2) means use as much significant figures as is needed for the numbers to be distinguished on rendering, but with at least 2 significant figures. The difference between this and fmap (comma (Just 2)) can be seen in these examples:0precision comma (Just 2) [0,1,1.01,1.02,1.1,1.2]+["0.00","1.00","1.01","1.02","1.10","1.20"]-fmap (comma (Just 2)) [0,1,1.01,1.02,1.1,1.2]%["0.0","1.0","1.0","1.0","1.1","1.2"]formatn0Consistently format a list of numbers via using ./formatNs defaultFormatN [0,1,1.01,1.02,1.1,1.2]+["0.00","1.00","1.01","1.02","1.10","1.20"]formatn,Format with the shorter of show and formatN.  &      !"#$%&'$formatn-0.1.0-4DGxkDdlzGfDtcIsPCKGWs Data.FormatN SigFigSign SigFigNeg SigFigPosSigFigsignfiguresexponentFormatN FormatFixed FormatDecimal FormatComma FormatExpt FormatPrec FormatDollar FormatPercent FormatNonedefaultFormatNformatNfixedtoSigFig fromSigFigexptdecimalpreccommadollarpercent precisionformatNsshowOr $fEqSigFig $fShowSigFig$fEqSigFigSign$fShowSigFigSign $fEqFormatN $fShowFormatN$fGenericFormatN