{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving #-}

-- |
-- Module      : Data.Text.Format.Types.Internal
-- Copyright   : (c) 2011 MailRank, Inc.
--
-- License     : BSD-style
-- Maintainer  : bos@serpentine.com
-- Stability   : experimental
-- Portability : GHC
--
-- Types for text mangling.

module Data.Text.Format.Types
    ( Shown(..)
    -- * Integer format control
    , Hex(..)
    ) where

-- | Render an integral type in hexadecimal.
newtype Hex a = Hex a
    deriving (Hex a -> Hex a -> Bool
(Hex a -> Hex a -> Bool) -> (Hex a -> Hex a -> Bool) -> Eq (Hex a)
forall a. Eq a => Hex a -> Hex a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Hex a -> Hex a -> Bool
$c/= :: forall a. Eq a => Hex a -> Hex a -> Bool
== :: Hex a -> Hex a -> Bool
$c== :: forall a. Eq a => Hex a -> Hex a -> Bool
Eq, Eq (Hex a)
Eq (Hex a) =>
(Hex a -> Hex a -> Ordering)
-> (Hex a -> Hex a -> Bool)
-> (Hex a -> Hex a -> Bool)
-> (Hex a -> Hex a -> Bool)
-> (Hex a -> Hex a -> Bool)
-> (Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a -> Hex a)
-> Ord (Hex a)
Hex a -> Hex a -> Bool
Hex a -> Hex a -> Ordering
Hex a -> Hex a -> Hex a
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
forall a. Ord a => Eq (Hex a)
forall a. Ord a => Hex a -> Hex a -> Bool
forall a. Ord a => Hex a -> Hex a -> Ordering
forall a. Ord a => Hex a -> Hex a -> Hex a
min :: Hex a -> Hex a -> Hex a
$cmin :: forall a. Ord a => Hex a -> Hex a -> Hex a
max :: Hex a -> Hex a -> Hex a
$cmax :: forall a. Ord a => Hex a -> Hex a -> Hex a
>= :: Hex a -> Hex a -> Bool
$c>= :: forall a. Ord a => Hex a -> Hex a -> Bool
> :: Hex a -> Hex a -> Bool
$c> :: forall a. Ord a => Hex a -> Hex a -> Bool
<= :: Hex a -> Hex a -> Bool
$c<= :: forall a. Ord a => Hex a -> Hex a -> Bool
< :: Hex a -> Hex a -> Bool
$c< :: forall a. Ord a => Hex a -> Hex a -> Bool
compare :: Hex a -> Hex a -> Ordering
$ccompare :: forall a. Ord a => Hex a -> Hex a -> Ordering
$cp1Ord :: forall a. Ord a => Eq (Hex a)
Ord, ReadPrec [Hex a]
ReadPrec (Hex a)
Int -> ReadS (Hex a)
ReadS [Hex a]
(Int -> ReadS (Hex a))
-> ReadS [Hex a]
-> ReadPrec (Hex a)
-> ReadPrec [Hex a]
-> Read (Hex a)
forall a. Read a => ReadPrec [Hex a]
forall a. Read a => ReadPrec (Hex a)
forall a. Read a => Int -> ReadS (Hex a)
forall a. Read a => ReadS [Hex a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Hex a]
$creadListPrec :: forall a. Read a => ReadPrec [Hex a]
readPrec :: ReadPrec (Hex a)
$creadPrec :: forall a. Read a => ReadPrec (Hex a)
readList :: ReadS [Hex a]
$creadList :: forall a. Read a => ReadS [Hex a]
readsPrec :: Int -> ReadS (Hex a)
$creadsPrec :: forall a. Read a => Int -> ReadS (Hex a)
Read, Int -> Hex a -> ShowS
[Hex a] -> ShowS
Hex a -> String
(Int -> Hex a -> ShowS)
-> (Hex a -> String) -> ([Hex a] -> ShowS) -> Show (Hex a)
forall a. Show a => Int -> Hex a -> ShowS
forall a. Show a => [Hex a] -> ShowS
forall a. Show a => Hex a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Hex a] -> ShowS
$cshowList :: forall a. Show a => [Hex a] -> ShowS
show :: Hex a -> String
$cshow :: forall a. Show a => Hex a -> String
showsPrec :: Int -> Hex a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> Hex a -> ShowS
Show, Integer -> Hex a
Hex a -> Hex a
Hex a -> Hex a -> Hex a
(Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a)
-> (Hex a -> Hex a)
-> (Hex a -> Hex a)
-> (Integer -> Hex a)
-> Num (Hex a)
forall a. Num a => Integer -> Hex a
forall a. Num a => Hex a -> Hex a
forall a. Num a => Hex a -> Hex a -> Hex a
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> Hex a
$cfromInteger :: forall a. Num a => Integer -> Hex a
signum :: Hex a -> Hex a
$csignum :: forall a. Num a => Hex a -> Hex a
abs :: Hex a -> Hex a
$cabs :: forall a. Num a => Hex a -> Hex a
negate :: Hex a -> Hex a
$cnegate :: forall a. Num a => Hex a -> Hex a
* :: Hex a -> Hex a -> Hex a
$c* :: forall a. Num a => Hex a -> Hex a -> Hex a
- :: Hex a -> Hex a -> Hex a
$c- :: forall a. Num a => Hex a -> Hex a -> Hex a
+ :: Hex a -> Hex a -> Hex a
$c+ :: forall a. Num a => Hex a -> Hex a -> Hex a
Num, Num (Hex a)
Ord (Hex a)
(Num (Hex a), Ord (Hex a)) => (Hex a -> Rational) -> Real (Hex a)
Hex a -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
forall a. Real a => Num (Hex a)
forall a. Real a => Ord (Hex a)
forall a. Real a => Hex a -> Rational
toRational :: Hex a -> Rational
$ctoRational :: forall a. Real a => Hex a -> Rational
$cp2Real :: forall a. Real a => Ord (Hex a)
$cp1Real :: forall a. Real a => Num (Hex a)
Real, Int -> Hex a
Hex a -> Int
Hex a -> [Hex a]
Hex a -> Hex a
Hex a -> Hex a -> [Hex a]
Hex a -> Hex a -> Hex a -> [Hex a]
(Hex a -> Hex a)
-> (Hex a -> Hex a)
-> (Int -> Hex a)
-> (Hex a -> Int)
-> (Hex a -> [Hex a])
-> (Hex a -> Hex a -> [Hex a])
-> (Hex a -> Hex a -> [Hex a])
-> (Hex a -> Hex a -> Hex a -> [Hex a])
-> Enum (Hex a)
forall a. Enum a => Int -> Hex a
forall a. Enum a => Hex a -> Int
forall a. Enum a => Hex a -> [Hex a]
forall a. Enum a => Hex a -> Hex a
forall a. Enum a => Hex a -> Hex a -> [Hex a]
forall a. Enum a => Hex a -> Hex a -> Hex a -> [Hex a]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: Hex a -> Hex a -> Hex a -> [Hex a]
$cenumFromThenTo :: forall a. Enum a => Hex a -> Hex a -> Hex a -> [Hex a]
enumFromTo :: Hex a -> Hex a -> [Hex a]
$cenumFromTo :: forall a. Enum a => Hex a -> Hex a -> [Hex a]
enumFromThen :: Hex a -> Hex a -> [Hex a]
$cenumFromThen :: forall a. Enum a => Hex a -> Hex a -> [Hex a]
enumFrom :: Hex a -> [Hex a]
$cenumFrom :: forall a. Enum a => Hex a -> [Hex a]
fromEnum :: Hex a -> Int
$cfromEnum :: forall a. Enum a => Hex a -> Int
toEnum :: Int -> Hex a
$ctoEnum :: forall a. Enum a => Int -> Hex a
pred :: Hex a -> Hex a
$cpred :: forall a. Enum a => Hex a -> Hex a
succ :: Hex a -> Hex a
$csucc :: forall a. Enum a => Hex a -> Hex a
Enum, Enum (Hex a)
Real (Hex a)
(Real (Hex a), Enum (Hex a)) =>
(Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a -> Hex a)
-> (Hex a -> Hex a -> (Hex a, Hex a))
-> (Hex a -> Hex a -> (Hex a, Hex a))
-> (Hex a -> Integer)
-> Integral (Hex a)
Hex a -> Integer
Hex a -> Hex a -> (Hex a, Hex a)
Hex a -> Hex a -> Hex a
forall a. Integral a => Enum (Hex a)
forall a. Integral a => Real (Hex a)
forall a. Integral a => Hex a -> Integer
forall a. Integral a => Hex a -> Hex a -> (Hex a, Hex a)
forall a. Integral a => Hex a -> Hex a -> Hex a
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
toInteger :: Hex a -> Integer
$ctoInteger :: forall a. Integral a => Hex a -> Integer
divMod :: Hex a -> Hex a -> (Hex a, Hex a)
$cdivMod :: forall a. Integral a => Hex a -> Hex a -> (Hex a, Hex a)
quotRem :: Hex a -> Hex a -> (Hex a, Hex a)
$cquotRem :: forall a. Integral a => Hex a -> Hex a -> (Hex a, Hex a)
mod :: Hex a -> Hex a -> Hex a
$cmod :: forall a. Integral a => Hex a -> Hex a -> Hex a
div :: Hex a -> Hex a -> Hex a
$cdiv :: forall a. Integral a => Hex a -> Hex a -> Hex a
rem :: Hex a -> Hex a -> Hex a
$crem :: forall a. Integral a => Hex a -> Hex a -> Hex a
quot :: Hex a -> Hex a -> Hex a
$cquot :: forall a. Integral a => Hex a -> Hex a -> Hex a
$cp2Integral :: forall a. Integral a => Enum (Hex a)
$cp1Integral :: forall a. Integral a => Real (Hex a)
Integral)

-- | Render a value using its 'Show' instance.
newtype Shown a = Shown {
      Shown a -> a
shown :: a
    } deriving (Shown a -> Shown a -> Bool
(Shown a -> Shown a -> Bool)
-> (Shown a -> Shown a -> Bool) -> Eq (Shown a)
forall a. Eq a => Shown a -> Shown a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Shown a -> Shown a -> Bool
$c/= :: forall a. Eq a => Shown a -> Shown a -> Bool
== :: Shown a -> Shown a -> Bool
$c== :: forall a. Eq a => Shown a -> Shown a -> Bool
Eq, Int -> Shown a -> ShowS
[Shown a] -> ShowS
Shown a -> String
(Int -> Shown a -> ShowS)
-> (Shown a -> String) -> ([Shown a] -> ShowS) -> Show (Shown a)
forall a. Show a => Int -> Shown a -> ShowS
forall a. Show a => [Shown a] -> ShowS
forall a. Show a => Shown a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Shown a] -> ShowS
$cshowList :: forall a. Show a => [Shown a] -> ShowS
show :: Shown a -> String
$cshow :: forall a. Show a => Shown a -> String
showsPrec :: Int -> Shown a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> Shown a -> ShowS
Show, ReadPrec [Shown a]
ReadPrec (Shown a)
Int -> ReadS (Shown a)
ReadS [Shown a]
(Int -> ReadS (Shown a))
-> ReadS [Shown a]
-> ReadPrec (Shown a)
-> ReadPrec [Shown a]
-> Read (Shown a)
forall a. Read a => ReadPrec [Shown a]
forall a. Read a => ReadPrec (Shown a)
forall a. Read a => Int -> ReadS (Shown a)
forall a. Read a => ReadS [Shown a]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Shown a]
$creadListPrec :: forall a. Read a => ReadPrec [Shown a]
readPrec :: ReadPrec (Shown a)
$creadPrec :: forall a. Read a => ReadPrec (Shown a)
readList :: ReadS [Shown a]
$creadList :: forall a. Read a => ReadS [Shown a]
readsPrec :: Int -> ReadS (Shown a)
$creadsPrec :: forall a. Read a => Int -> ReadS (Shown a)
Read, Eq (Shown a)
Eq (Shown a) =>
(Shown a -> Shown a -> Ordering)
-> (Shown a -> Shown a -> Bool)
-> (Shown a -> Shown a -> Bool)
-> (Shown a -> Shown a -> Bool)
-> (Shown a -> Shown a -> Bool)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> Ord (Shown a)
Shown a -> Shown a -> Bool
Shown a -> Shown a -> Ordering
Shown a -> Shown a -> Shown a
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
forall a. Ord a => Eq (Shown a)
forall a. Ord a => Shown a -> Shown a -> Bool
forall a. Ord a => Shown a -> Shown a -> Ordering
forall a. Ord a => Shown a -> Shown a -> Shown a
min :: Shown a -> Shown a -> Shown a
$cmin :: forall a. Ord a => Shown a -> Shown a -> Shown a
max :: Shown a -> Shown a -> Shown a
$cmax :: forall a. Ord a => Shown a -> Shown a -> Shown a
>= :: Shown a -> Shown a -> Bool
$c>= :: forall a. Ord a => Shown a -> Shown a -> Bool
> :: Shown a -> Shown a -> Bool
$c> :: forall a. Ord a => Shown a -> Shown a -> Bool
<= :: Shown a -> Shown a -> Bool
$c<= :: forall a. Ord a => Shown a -> Shown a -> Bool
< :: Shown a -> Shown a -> Bool
$c< :: forall a. Ord a => Shown a -> Shown a -> Bool
compare :: Shown a -> Shown a -> Ordering
$ccompare :: forall a. Ord a => Shown a -> Shown a -> Ordering
$cp1Ord :: forall a. Ord a => Eq (Shown a)
Ord, Integer -> Shown a
Shown a -> Shown a
Shown a -> Shown a -> Shown a
(Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Integer -> Shown a)
-> Num (Shown a)
forall a. Num a => Integer -> Shown a
forall a. Num a => Shown a -> Shown a
forall a. Num a => Shown a -> Shown a -> Shown a
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> Shown a
$cfromInteger :: forall a. Num a => Integer -> Shown a
signum :: Shown a -> Shown a
$csignum :: forall a. Num a => Shown a -> Shown a
abs :: Shown a -> Shown a
$cabs :: forall a. Num a => Shown a -> Shown a
negate :: Shown a -> Shown a
$cnegate :: forall a. Num a => Shown a -> Shown a
* :: Shown a -> Shown a -> Shown a
$c* :: forall a. Num a => Shown a -> Shown a -> Shown a
- :: Shown a -> Shown a -> Shown a
$c- :: forall a. Num a => Shown a -> Shown a -> Shown a
+ :: Shown a -> Shown a -> Shown a
$c+ :: forall a. Num a => Shown a -> Shown a -> Shown a
Num, Num (Shown a)
Num (Shown a) =>
(Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Rational -> Shown a)
-> Fractional (Shown a)
Rational -> Shown a
Shown a -> Shown a
Shown a -> Shown a -> Shown a
forall a. Fractional a => Num (Shown a)
forall a. Fractional a => Rational -> Shown a
forall a. Fractional a => Shown a -> Shown a
forall a. Fractional a => Shown a -> Shown a -> Shown a
forall a.
Num a =>
(a -> a -> a) -> (a -> a) -> (Rational -> a) -> Fractional a
fromRational :: Rational -> Shown a
$cfromRational :: forall a. Fractional a => Rational -> Shown a
recip :: Shown a -> Shown a
$crecip :: forall a. Fractional a => Shown a -> Shown a
/ :: Shown a -> Shown a -> Shown a
$c/ :: forall a. Fractional a => Shown a -> Shown a -> Shown a
$cp1Fractional :: forall a. Fractional a => Num (Shown a)
Fractional, Num (Shown a)
Ord (Shown a)
(Num (Shown a), Ord (Shown a)) =>
(Shown a -> Rational) -> Real (Shown a)
Shown a -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
forall a. Real a => Num (Shown a)
forall a. Real a => Ord (Shown a)
forall a. Real a => Shown a -> Rational
toRational :: Shown a -> Rational
$ctoRational :: forall a. Real a => Shown a -> Rational
$cp2Real :: forall a. Real a => Ord (Shown a)
$cp1Real :: forall a. Real a => Num (Shown a)
Real, Fractional (Shown a)
Real (Shown a)
(Real (Shown a), Fractional (Shown a)) =>
(forall b. Integral b => Shown a -> (b, Shown a))
-> (forall b. Integral b => Shown a -> b)
-> (forall b. Integral b => Shown a -> b)
-> (forall b. Integral b => Shown a -> b)
-> (forall b. Integral b => Shown a -> b)
-> RealFrac (Shown a)
Shown a -> b
Shown a -> b
Shown a -> b
Shown a -> b
Shown a -> (b, Shown a)
forall b. Integral b => Shown a -> b
forall b. Integral b => Shown a -> (b, Shown a)
forall a.
(Real a, Fractional a) =>
(forall b. Integral b => a -> (b, a))
-> (forall b. Integral b => a -> b)
-> (forall b. Integral b => a -> b)
-> (forall b. Integral b => a -> b)
-> (forall b. Integral b => a -> b)
-> RealFrac a
forall a. RealFrac a => Fractional (Shown a)
forall a. RealFrac a => Real (Shown a)
forall a b. (RealFrac a, Integral b) => Shown a -> b
forall a b. (RealFrac a, Integral b) => Shown a -> (b, Shown a)
floor :: Shown a -> b
$cfloor :: forall a b. (RealFrac a, Integral b) => Shown a -> b
ceiling :: Shown a -> b
$cceiling :: forall a b. (RealFrac a, Integral b) => Shown a -> b
round :: Shown a -> b
$cround :: forall a b. (RealFrac a, Integral b) => Shown a -> b
truncate :: Shown a -> b
$ctruncate :: forall a b. (RealFrac a, Integral b) => Shown a -> b
properFraction :: Shown a -> (b, Shown a)
$cproperFraction :: forall a b. (RealFrac a, Integral b) => Shown a -> (b, Shown a)
$cp2RealFrac :: forall a. RealFrac a => Fractional (Shown a)
$cp1RealFrac :: forall a. RealFrac a => Real (Shown a)
RealFrac,
                Fractional (Shown a)
Shown a
Fractional (Shown a) =>
Shown a
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Shown a -> Shown a)
-> Floating (Shown a)
Shown a -> Shown a
Shown a -> Shown a -> Shown a
forall a. Floating a => Fractional (Shown a)
forall a. Floating a => Shown a
forall a. Floating a => Shown a -> Shown a
forall a. Floating a => Shown a -> Shown a -> Shown a
forall a.
Fractional a =>
a
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> Floating a
log1mexp :: Shown a -> Shown a
$clog1mexp :: forall a. Floating a => Shown a -> Shown a
log1pexp :: Shown a -> Shown a
$clog1pexp :: forall a. Floating a => Shown a -> Shown a
expm1 :: Shown a -> Shown a
$cexpm1 :: forall a. Floating a => Shown a -> Shown a
log1p :: Shown a -> Shown a
$clog1p :: forall a. Floating a => Shown a -> Shown a
atanh :: Shown a -> Shown a
$catanh :: forall a. Floating a => Shown a -> Shown a
acosh :: Shown a -> Shown a
$cacosh :: forall a. Floating a => Shown a -> Shown a
asinh :: Shown a -> Shown a
$casinh :: forall a. Floating a => Shown a -> Shown a
tanh :: Shown a -> Shown a
$ctanh :: forall a. Floating a => Shown a -> Shown a
cosh :: Shown a -> Shown a
$ccosh :: forall a. Floating a => Shown a -> Shown a
sinh :: Shown a -> Shown a
$csinh :: forall a. Floating a => Shown a -> Shown a
atan :: Shown a -> Shown a
$catan :: forall a. Floating a => Shown a -> Shown a
acos :: Shown a -> Shown a
$cacos :: forall a. Floating a => Shown a -> Shown a
asin :: Shown a -> Shown a
$casin :: forall a. Floating a => Shown a -> Shown a
tan :: Shown a -> Shown a
$ctan :: forall a. Floating a => Shown a -> Shown a
cos :: Shown a -> Shown a
$ccos :: forall a. Floating a => Shown a -> Shown a
sin :: Shown a -> Shown a
$csin :: forall a. Floating a => Shown a -> Shown a
logBase :: Shown a -> Shown a -> Shown a
$clogBase :: forall a. Floating a => Shown a -> Shown a -> Shown a
** :: Shown a -> Shown a -> Shown a
$c** :: forall a. Floating a => Shown a -> Shown a -> Shown a
sqrt :: Shown a -> Shown a
$csqrt :: forall a. Floating a => Shown a -> Shown a
log :: Shown a -> Shown a
$clog :: forall a. Floating a => Shown a -> Shown a
exp :: Shown a -> Shown a
$cexp :: forall a. Floating a => Shown a -> Shown a
pi :: Shown a
$cpi :: forall a. Floating a => Shown a
$cp1Floating :: forall a. Floating a => Fractional (Shown a)
Floating, Floating (Shown a)
RealFrac (Shown a)
(RealFrac (Shown a), Floating (Shown a)) =>
(Shown a -> Integer)
-> (Shown a -> Int)
-> (Shown a -> (Int, Int))
-> (Shown a -> (Integer, Int))
-> (Integer -> Int -> Shown a)
-> (Shown a -> Int)
-> (Shown a -> Shown a)
-> (Int -> Shown a -> Shown a)
-> (Shown a -> Bool)
-> (Shown a -> Bool)
-> (Shown a -> Bool)
-> (Shown a -> Bool)
-> (Shown a -> Bool)
-> (Shown a -> Shown a -> Shown a)
-> RealFloat (Shown a)
Int -> Shown a -> Shown a
Integer -> Int -> Shown a
Shown a -> Bool
Shown a -> Int
Shown a -> Integer
Shown a -> (Int, Int)
Shown a -> (Integer, Int)
Shown a -> Shown a
Shown a -> Shown a -> Shown a
forall a. RealFloat a => Floating (Shown a)
forall a. RealFloat a => RealFrac (Shown a)
forall a. RealFloat a => Int -> Shown a -> Shown a
forall a. RealFloat a => Integer -> Int -> Shown a
forall a. RealFloat a => Shown a -> Bool
forall a. RealFloat a => Shown a -> Int
forall a. RealFloat a => Shown a -> Integer
forall a. RealFloat a => Shown a -> (Int, Int)
forall a. RealFloat a => Shown a -> (Integer, Int)
forall a. RealFloat a => Shown a -> Shown a
forall a. RealFloat a => Shown a -> Shown a -> Shown a
forall a.
(RealFrac a, Floating a) =>
(a -> Integer)
-> (a -> Int)
-> (a -> (Int, Int))
-> (a -> (Integer, Int))
-> (Integer -> Int -> a)
-> (a -> Int)
-> (a -> a)
-> (Int -> a -> a)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> Bool)
-> (a -> a -> a)
-> RealFloat a
atan2 :: Shown a -> Shown a -> Shown a
$catan2 :: forall a. RealFloat a => Shown a -> Shown a -> Shown a
isIEEE :: Shown a -> Bool
$cisIEEE :: forall a. RealFloat a => Shown a -> Bool
isNegativeZero :: Shown a -> Bool
$cisNegativeZero :: forall a. RealFloat a => Shown a -> Bool
isDenormalized :: Shown a -> Bool
$cisDenormalized :: forall a. RealFloat a => Shown a -> Bool
isInfinite :: Shown a -> Bool
$cisInfinite :: forall a. RealFloat a => Shown a -> Bool
isNaN :: Shown a -> Bool
$cisNaN :: forall a. RealFloat a => Shown a -> Bool
scaleFloat :: Int -> Shown a -> Shown a
$cscaleFloat :: forall a. RealFloat a => Int -> Shown a -> Shown a
significand :: Shown a -> Shown a
$csignificand :: forall a. RealFloat a => Shown a -> Shown a
exponent :: Shown a -> Int
$cexponent :: forall a. RealFloat a => Shown a -> Int
encodeFloat :: Integer -> Int -> Shown a
$cencodeFloat :: forall a. RealFloat a => Integer -> Int -> Shown a
decodeFloat :: Shown a -> (Integer, Int)
$cdecodeFloat :: forall a. RealFloat a => Shown a -> (Integer, Int)
floatRange :: Shown a -> (Int, Int)
$cfloatRange :: forall a. RealFloat a => Shown a -> (Int, Int)
floatDigits :: Shown a -> Int
$cfloatDigits :: forall a. RealFloat a => Shown a -> Int
floatRadix :: Shown a -> Integer
$cfloatRadix :: forall a. RealFloat a => Shown a -> Integer
$cp2RealFloat :: forall a. RealFloat a => Floating (Shown a)
$cp1RealFloat :: forall a. RealFloat a => RealFrac (Shown a)
RealFloat, Int -> Shown a
Shown a -> Int
Shown a -> [Shown a]
Shown a -> Shown a
Shown a -> Shown a -> [Shown a]
Shown a -> Shown a -> Shown a -> [Shown a]
(Shown a -> Shown a)
-> (Shown a -> Shown a)
-> (Int -> Shown a)
-> (Shown a -> Int)
-> (Shown a -> [Shown a])
-> (Shown a -> Shown a -> [Shown a])
-> (Shown a -> Shown a -> [Shown a])
-> (Shown a -> Shown a -> Shown a -> [Shown a])
-> Enum (Shown a)
forall a. Enum a => Int -> Shown a
forall a. Enum a => Shown a -> Int
forall a. Enum a => Shown a -> [Shown a]
forall a. Enum a => Shown a -> Shown a
forall a. Enum a => Shown a -> Shown a -> [Shown a]
forall a. Enum a => Shown a -> Shown a -> Shown a -> [Shown a]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: Shown a -> Shown a -> Shown a -> [Shown a]
$cenumFromThenTo :: forall a. Enum a => Shown a -> Shown a -> Shown a -> [Shown a]
enumFromTo :: Shown a -> Shown a -> [Shown a]
$cenumFromTo :: forall a. Enum a => Shown a -> Shown a -> [Shown a]
enumFromThen :: Shown a -> Shown a -> [Shown a]
$cenumFromThen :: forall a. Enum a => Shown a -> Shown a -> [Shown a]
enumFrom :: Shown a -> [Shown a]
$cenumFrom :: forall a. Enum a => Shown a -> [Shown a]
fromEnum :: Shown a -> Int
$cfromEnum :: forall a. Enum a => Shown a -> Int
toEnum :: Int -> Shown a
$ctoEnum :: forall a. Enum a => Int -> Shown a
pred :: Shown a -> Shown a
$cpred :: forall a. Enum a => Shown a -> Shown a
succ :: Shown a -> Shown a
$csucc :: forall a. Enum a => Shown a -> Shown a
Enum, Enum (Shown a)
Real (Shown a)
(Real (Shown a), Enum (Shown a)) =>
(Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> Shown a)
-> (Shown a -> Shown a -> (Shown a, Shown a))
-> (Shown a -> Shown a -> (Shown a, Shown a))
-> (Shown a -> Integer)
-> Integral (Shown a)
Shown a -> Integer
Shown a -> Shown a -> (Shown a, Shown a)
Shown a -> Shown a -> Shown a
forall a. Integral a => Enum (Shown a)
forall a. Integral a => Real (Shown a)
forall a. Integral a => Shown a -> Integer
forall a. Integral a => Shown a -> Shown a -> (Shown a, Shown a)
forall a. Integral a => Shown a -> Shown a -> Shown a
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
toInteger :: Shown a -> Integer
$ctoInteger :: forall a. Integral a => Shown a -> Integer
divMod :: Shown a -> Shown a -> (Shown a, Shown a)
$cdivMod :: forall a. Integral a => Shown a -> Shown a -> (Shown a, Shown a)
quotRem :: Shown a -> Shown a -> (Shown a, Shown a)
$cquotRem :: forall a. Integral a => Shown a -> Shown a -> (Shown a, Shown a)
mod :: Shown a -> Shown a -> Shown a
$cmod :: forall a. Integral a => Shown a -> Shown a -> Shown a
div :: Shown a -> Shown a -> Shown a
$cdiv :: forall a. Integral a => Shown a -> Shown a -> Shown a
rem :: Shown a -> Shown a -> Shown a
$crem :: forall a. Integral a => Shown a -> Shown a -> Shown a
quot :: Shown a -> Shown a -> Shown a
$cquot :: forall a. Integral a => Shown a -> Shown a -> Shown a
$cp2Integral :: forall a. Integral a => Enum (Shown a)
$cp1Integral :: forall a. Integral a => Real (Shown a)
Integral, Shown a
Shown a -> Shown a -> Bounded (Shown a)
forall a. a -> a -> Bounded a
forall a. Bounded a => Shown a
maxBound :: Shown a
$cmaxBound :: forall a. Bounded a => Shown a
minBound :: Shown a
$cminBound :: forall a. Bounded a => Shown a
Bounded)