Modulecardano-prelude-0.2.2.0Haskell2010
Cardano.Prelude
- 121 types
- 50 classes
- 471 values
- Packagecardano-prelude-0.2.2.0
- Exports650
- LanguageHaskell2010
- LicenceApache-2.0
- SourceInternal.hs
Cancel an asynchronous action by throwing the AsyncCancelled
exception to it, and waiting for the Async thread to quit.
Has no effect if the Async has already completed.
cancel a = throwTo (asyncThreadId a) AsyncCancelled <* waitCatch aNote that cancel will not terminate until the thread the Async refers to has terminated. This means that cancel will block for as long said thread blocks when receiving an asynchronous exception.
For example, it could block if:
It's executing a foreign call, and thus cannot receive the asynchronous exception;
It's executing some cleanup handler after having received the exception, and the handler is blocking.
Cancel an asynchronous action by throwing the supplied exception to it.
cancelWith a x = throwTo (asyncThreadId a) xThe notes about the synchronous nature of cancel also apply to cancelWith.
Run two IO actions concurrently, and return both results. If
either action throws an exception at any time, then the other
action is cancelled, and the exception is re-thrown by
concurrently.
concurrently left right =
withAsync left $ \a ->
withAsync right $ \b ->
waitBoth a bTo run more than two actions concurrently, see mapConcurrently.
Link the given Async to the current thread, such that if the
Async raises an exception, that exception will be re-thrown in
the current thread, wrapped in ExceptionInLinkedThread.
link ignores AsyncCancelled exceptions thrown in the other thread, so that it's safe to cancel a thread you're linked to. If you want different behaviour, use linkOnly.
Link two Asyncs together, such that if either raises an
exception, the same exception is re-thrown in the other Async,
wrapped in ExceptionInLinkedThread.
link2 ignores AsyncCancelled exceptions, so that it's possible to cancel either thread without cancelling the other. If you want different behaviour, use link2Only.
Check whether an Async has completed yet. If it has not
completed yet, then the result is Nothing, otherwise the result
is Just e where e is Left x if the Async raised an
exception x, or Right a if it returned a value a.
poll = atomically . pollSTMRun two IO actions concurrently, and return the first to
finish. The loser of the race is cancelled.
race left right =
withAsync left $ \a ->
withAsync right $ \b ->
waitEither a bLike race, but the result is ignored.
Wait for an asynchronous action to complete, and return its value. If the asynchronous action threw an exception, then the exception is re-thrown by wait.
wait = atomically . waitSTMLike waitAny, but also cancels the other asynchronous operations as soon as one has completed.
Wait for any of the supplied asynchronous operations to complete. The value returned is a pair of the Async that completed, and the result that would be returned by wait on that Async. The input list must be non-empty.
If multiple Asyncs complete or have completed, then the value returned corresponds to the first completed Async in the list.
Like waitAnyCatch, but also cancels the other asynchronous operations as soon as one has completed.
Waits for both Asyncs to finish, but if either of them throws
an exception before they have both finished, then the exception is
re-thrown by waitBoth.
Wait for an asynchronous action to complete, and return either
Left e if the action raised an exception e, or Right a if it
returned a value a.
waitCatch = atomically . waitCatchSTMWait for the first of two Asyncs to finish. If the Async
that finished first raised an exception, then the exception is
re-thrown by waitEither.
Like waitEither, but also cancels both Asyncs before
returning.
Wait for the first of two Asyncs to finish.
Like waitEitherCatch, but also cancels both Asyncs before
returning.
Like waitEither, but the result is ignored.
Spawn an asynchronous action in a separate thread, and pass its
Async handle to the supplied function. When the function returns
or throws an exception, uninterruptibleCancel is called on the Async.
withAsync action inner = mask $ \restore -> do
a <- async (restore action)
restore (inner a) `finally` uninterruptibleCancel aThis is a useful variant of async that ensures an Async is
never left running unintentionally.
Note: a reference to the child thread is kept alive until the call to withAsync returns, so nesting many withAsync calls requires linear memory.
One or none.
It is useful for modelling any computation that is allowed to fail.
Examples
Using the Alternative instance of Control.Monad.Except, the following functions:
import Control.Monad.ExceptcanFail = throwError "it failed" :: Except String Intfinal = return 42 :: Except String Int
Can be combined by allowing the first function to fail:
runExcept $ canFail *> finalLeft "it failed"
runExcept $ optional canFail *> finalRight 42
Fork a thread and call the supplied function when the thread is about to terminate, with an exception or a returned value. The function is called with asynchronous exceptions masked.
forkFinally action and_then =
mask $ \restore ->
forkIO $ try (restore action) >>= and_thenThis function is useful for informing the parent when a child terminates, for example.
Block the current thread until data is available to read on the given file descriptor (GHC only).
This will throw an IOError if the file descriptor was closed while this thread was blocked. To safely close a file descriptor that has been used with threadWaitRead, use closeFdWith.
Returns an STM action that can be used to wait for data to read from a file descriptor. The second returned value is an IO action that can be used to deregister interest in the file descriptor.
Block the current thread until data can be written to the given file descriptor (GHC only).
This will throw an IOError if the file descriptor was closed while this thread was blocked. To safely close a file descriptor that has been used with threadWaitWrite, use closeFdWith.
Returns an STM action that can be used to wait until data can be written to a file descriptor. The second returned value is an IO action that can be used to deregister interest in the file descriptor.
Convert a single digit Char to the corresponding Int. This
function fails unless its argument satisfies isHexDigit, but
recognises both upper- and lower-case hexadecimal digits (that
is, '0'..'9', 'a'..'f', 'A'..'F').
Examples
Characters '0' through '9' are converted properly to
0..9:
map digitToInt ['0'..'9'][0,1,2,3,4,5,6,7,8,9]
Both upper- and lower-case 'A' through 'F' are converted
as well, to 10..15.
map digitToInt ['a'..'f'][10,11,12,13,14,15]map digitToInt ['A'..'F'][10,11,12,13,14,15]
Anything else throws an exception:
digitToInt 'G'*** Exception: Char.digitToInt: not a digit 'G'digitToInt '♥'*** Exception: Char.digitToInt: not a digit '\9829'
Selects alphabetic Unicode characters (lower-case, upper-case and title-case letters, plus letters of caseless scripts and modifiers letters). This function is equivalent to isAlpha.
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
These classes are defined in the Unicode Character Database, part of the Unicode standard. The same document defines what is and is not a "Letter".
Examples
Basic usage:
isLetter 'a'TrueisLetter 'A'TrueisLetter 'λ'TrueisLetter '0'FalseisLetter '%'FalseisLetter '♥'FalseisLetter '\31'False
Ensure that isLetter and isAlpha are equivalent.
let chars = [(chr 0)..]let letters = map isLetter charslet alphas = map isAlpha charsletters == alphasTrue
Selects Unicode mark characters, for example accents and the like, which combine with preceding characters.
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
These classes are defined in the Unicode Character Database, part of the Unicode standard. The same document defines what is and is not a "Mark".
Examples
Basic usage:
isMark 'a'FalseisMark '0'False
Combining marks such as accent characters usually need to follow another character before they become printable:
map isMark "ò"[False,True]
Puns are not necessarily supported:
isMark '✓'False
Selects Unicode numeric characters, including digits from various scripts, Roman numerals, et cetera.
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
These classes are defined in the Unicode Character Database, part of the Unicode standard. The same document defines what is and is not a "Number".
Examples
Basic usage:
isNumber 'a'FalseisNumber '%'FalseisNumber '3'True
ASCII '0' through '9' are all numbers:
and $ map isNumber ['0'..'9']True
Unicode Roman numerals are "numbers" as well:
isNumber 'Ⅸ'True
Selects Unicode space and separator characters.
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
These classes are defined in the Unicode Character Database, part of the Unicode standard. The same document defines what is and is not a "Separator".
Examples
Basic usage:
isSeparator 'a'FalseisSeparator '6'FalseisSeparator ' 'True
Warning: newlines and tab characters are not considered separators.
isSeparator '\n'FalseisSeparator '\t'False
But some more exotic characters are (like HTML's ):
isSeparator '\160'True
This lets you use a difference list of a Semigroup as a Monoid.
Examples
let hello = diff "Hello, "appEndo hello "World!""Hello, World!"
appEndo (hello <> mempty) "World!""Hello, World!"
appEndo (mempty <> hello) "World!""Hello, World!"
let world = diff "World"let excl = diff "!"
appEndo (hello <> (world <> excl)) mempty"Hello, World!"
appEndo ((hello <> world) <> excl) mempty"Hello, World!"
Rename id to identity to allow id as a variable name
We can pass several things here, as long as they have length.
Explicit output with Text since that is what we want most of the time.
We don't want to look at the type errors or warnings arising.
trace remains in code
traceM remains in code
traceShow remains in code
Convert a Buildable error into an aeson parser error
Convert a Buildable error into a cborg decoder error
A helper for lifting unless to MonadError
By using this function infix we can move error handling to the end of a Bool expression, hopefully improving readability.
Convert an Either-encoded error to an aeson parser error
Convert an Either-encoded failure to a cborg decoder failure
A helper for lifting an Either to a MonadError
By using this function infix we can move the error handling to the end of an expression, hopefully improving readability.
A Builder for a ByteString that performs base 16 encoding
A Format for a ByteString that performs base 16 encoding
A Format for Foldable containers that outputs a JSON-style list
A Format similar to listJson that prints each value on a new line with
indent spaces of indentation
A Format for Exts.IsList containers of Buildable key-value pairs that
outputs a JSON-style colon-separated map
A Builder for a pair of Buildable values (a, b)
A Format for a pair of Buildable values (a, b)
The function isNormalForm checks whether its argument is fully evaluated and deeply evaluated.
NOTE: The normal form check can be quite brittle, especially with -O0. For
example, writing something like
let !(Value x) = ... in ....might translate to
let !.. = ... in ... (case ... of Value x -> x)which would trivially be False. In general, isNormalForm should probably
only be used with -O1, but even then the answer may still depend on
internal decisions made by ghc during compilation.
Compute the size of the given closure
This is a wrapper around computeHeapSize' which sets some defaults for the capacity of worklist and the visited set: it uses a worklist capacity of 10k (which, assuming balanced data structures, should be more than enough), an initial visited set capacity of 250k, and a maximum visited set capacity of 16M. This means that this will use between 2 MB and 128 MB of heaps space.
It also does NOT perform GC before counting, for improved performance. Client code can call performMajorGC manually or use computeHeapSize'.
Should these limits not be sufficient, or conversely, the memory requirements be too large, use computeHeapSize' directly.
computeHeapSize' Compute the size of the given closure
The size of the worklist should be set to the maximum expected depth of the closure; the size of the visited set should be set to the maximum /number of nodes/ in the closure.
computeHeapSizeWorkList can be used to estimate the size of the worklist required.
Upper bound on the required work list size to compute closure size
NOTE: This ignores sharing, and so provides an upper bound only.
The size of a closure with no nested pointers can be computed without any stack space.
When we have a closure with (N + 1) nested pointers
p0 p1 .. pNWe will
Push
pN, .., p1, p0onto the stackPop off
p0and count its childrenPop off
p1and count its children..
until we have processed all children. This means that the stack space required will be the maximum of
[ N + 1 -- For the initial list
, requiredWorkList p0 + (N + 1) - 1
, requiredWorkList p1 + (N + 1) - 2
, ..
, requiredWorkList pN + (N + 1) - (N + 1)
]For example, for a list, we would get that
requiredWorkList [] == 0
requiredWorkList (x:xs) == max [ 2
, requiredWorkList x + 1
, requiredWorkList xs
]which, for a list of Int (which requires only a stack of size 1), equals 2
(unless the list is empty).
Similarly, for binary trees, we get
requiredWorkList Leaf == 0
requiredWorkList (Branch l x r) == max [ 3
, requiredWorkList l + 2
, requiredWorkList x + 1
, requiredWorkList r
]which, for a tree of Int, is bound by (height * 2) + 1.
Given a Haskell expression, build a Tree which reflects its heap object representation.
Attempt to parse a value of type a from the body of a JSString using
parser
Force all of the elements of a Foldable to weak head normal form.
In order to ensure that all of the elements of a Foldable are strict, we
can simply foldMap over it and seq each value with (). However,
()'s mappend implementation is actually completely lazy: _ <> _ = ()
So, in order to work around this, we instead utilize this newly defined
StrictUnit whose mappend implementation is specifically strict.
The deep analogue of $!. f $!! x fully evaluates x
before returning f x.
There is no guarantee about the ordering of evaluation.
f x may be evaluated before x is fully evaluated.
To impose an actual order on evaluation, use pseq from
Control.Parallel in the parallel package.
A variant of deepseq that is useful in some circumstances:
force x = x `deepseq` xforce x fully evaluates x, and then returns it. Note that
force x only performs evaluation when the value of force x
itself is demanded, so essentially it turns shallow evaluation into
deep evaluation.
force can be conveniently used in combination with ViewPatterns:
{-# LANGUAGE BangPatterns, ViewPatterns #-}
import Control.DeepSeq
someFun :: ComplexData -> SomeResult
someFun (force -> !arg) = {- 'arg' will be fully evaluated -}Another useful application is to combine force with evaluate in order to force deep evaluation relative to other IO operations:
import Control.Exception (evaluate)
import Control.DeepSeq
main = do
result <- evaluate $ force $ pureComputation
{- 'result' will be fully evaluated at this point -}
return ()Finally, here's an exception safe variant of the readFile' example:
readFile' :: FilePath -> IO String
readFile' fn = bracket (openFile fn ReadMode) hClose $ \h ->
evaluate . force =<< hGetContents hA version of concatMap that works with a monadic predicate.
is the function application operator.($)
Applying to a function ($)f and an argument x gives the same result as applying f to x directly. The definition is akin to this:
($) :: (a -> b) -> a -> b
($) f x = f x
This is id specialized from a -> a to (a -> b) -> (a -> b) which by the associativity of (->)
is the same as (a -> b) -> a -> b.
On the face of it, this may appear pointless! But it's actually one of the most useful and important operators in Haskell.
The order of operations is very different between ($) and normal function application. Normal function application has precedence 10 - higher than any operator - and associates to the left. So these two definitions are equivalent:
expr = min 5 1 + 5
expr = ((min 5) 1) + 5
($) has precedence 0 (the lowest) and associates to the right, so these are equivalent:
expr = min 5 $ 1 + 5
expr = (min 5) (1 + 5)
Examples
A common use cases of ($) is to avoid parentheses in complex expressions.
For example, instead of using nested parentheses in the following Haskell function:
-- | Sum numbers in a string: strSum "100 5 -7" == 98
strSum :: String -> Int
strSum s = sum (mapMaybe readMaybe (words s))
we can deploy the function application operator:
-- | Sum numbers in a string: strSum "100 5 -7" == 98
strSum :: String -> Int
strSum s = sum $ mapMaybe readMaybe $ words s
($) is also used as a section (a partially applied operator), in order to indicate that we wish to apply some yet-unspecified function to a given value. For example, to apply the argument 5 to a list of functions:
applyFive :: [Int]
applyFive = map ($ 5) [(+1), (2^)]
>>> [6, 32]
Technical Remark (Representation Polymorphism)
($) is fully representation-polymorphic. This allows it to also be used with arguments of unlifted and even unboxed kinds, such as unboxed integers:
fastMod :: Int -> Int -> Int
fastMod (I# x) (I# m) = I# $ remInt# x m
Strict (call-by-value) application operator. It takes a function and an argument, evaluates the argument to weak head normal form (WHNF), then calls the function with that value.
(++) appends two lists, i.e.,
[x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
[x1, ..., xm] ++ [y1, ...] == [x1, ..., xm, y1, ...]If the first list is not finite, the result is the first list.
Performance considerations
This function takes linear time in the number of elements of the
first list. Thus it is better to associate repeated
applications of (++) to the right (which is the default behaviour):
xs ++ (ys ++ zs) or simply xs ++ ys ++ zs, but not (xs ++ ys) ++ zs.
For the same reason GHC.Internal.Data.List.concat = GHC.Internal.Data.List.foldr (++) []
has linear performance, while GHC.Internal.Data.List.foldl (++) [] is prone
to quadratic slowdown
Examples
[1, 2, 3] ++ [4, 5, 6][1,2,3,4,5,6]
[] ++ [1, 2, 3][1,2,3]
[3, 2, 1] ++ [][3,2,1]
A variant of <*> with the types of the arguments reversed. It differs from
flip in that the effects are resolved in the order the arguments are
presented.(<*>)
Examples
(<**>) (print 1) (id <$ print 2)12
flip (<*>) (print 1) (id <$ print 2)21
ZipList [4, 5, 6] <**> ZipList [(+1), (*2), (/3)]ZipList {getZipList = [5.0,10.0,2.0]}
Same as >>=, but with the arguments interchanged.
as >>= f == f =<< asSince Void values logically don't exist, this witnesses the logical reasoning tool of "ex falso quodlibet".
let x :: Either Void Int; x = Right 5:{case x of Right r -> r Left l -> absurd l:}5
const x y always evaluates to x, ignoring its second argument.
const x = \_ -> xThis function might seem useless at first glance, but it can be very useful in a higher order context.
Examples
const 42 "hello"42
map (const 42) [0..3][42,42,42,42]
flip f takes its (first) two arguments in the reverse order of f.
flip f x y = f y xflip . flip = idExamples
flip (++) "hello" "world""worldhello"
let (.>) = flip (.) in (+1) .> show $ 5"6"
The join function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.
'join bss' can be understood as the do expression
do bs <- bss
bs
Examples
join [[1, 2, 3], [4, 5, 6], [7, 8, 9]][1,2,3,4,5,6,7,8,9]
join (Just (Just 3))Just 3
A common use of join is to run an IO computation returned from
an GHC.Conc.STM transaction, since GHC.Conc.STM transactions
can't perform IO directly. Recall that
GHC.Internal.Conc.atomically :: STM a -> IO a
is used to run GHC.Conc.STM transactions atomically. So, by
specializing the types of GHC.Internal.Conc.atomically and join to
GHC.Internal.Conc.atomically :: STM (IO b) -> IO (IO b)
join :: IO (IO b) -> IO b
we can compose them as
join . GHC.Internal.Conc.atomically :: STM (IO b) -> IO b
to run an GHC.Conc.STM transaction and the IO action it
returns.
Lift a function to actions.
Equivalent to Functor's fmap but implemented using only Applicative's methods:
liftA f a = pure f <*> a
As such this function may be used to implement a Functor instance from an Applicative one.
Examples
Using the Applicative instance for Lists:
liftA (+1) [1, 2][2,3]
Or the Applicative instance for Maybe
liftA (+1) (Just 3)Just 4
Lift a ternary function to actions.
Promote a function to a monad. This is equivalent to fmap but specialised to Monads.
Promote a function to a monad, scanning the monadic arguments from left to right.
Examples
liftM2 (+) [0,1] [0,2][0,2,1,3]
liftM2 (+) (Just 1) NothingNothing
liftM2 (+) (+ 3) (* 2) 518
Promote a function to a monad, scanning the monadic arguments from left to right (cf. liftM2).
Promote a function to a monad, scanning the monadic arguments from left to right (cf. liftM2).
Promote a function to a monad, scanning the monadic arguments from left to right (cf. liftM2).
The Prelude.fromEnum method restricted to the type Char.
Conditional execution of Applicative expressions. For example,
Examples
when debug (putStrLn "Debugging")will output the string Debugging if the Boolean value debug
is True, and otherwise do nothing.
putStr "pi:" >> when False (print 3.14159)pi:
Default implementation for popCount.
This implementation is intentionally naive. Instances are expected to provide an optimized implementation for their size.
Default implementation for testBit.
Note that: testBitDefault x i = (x .&. bit i) /= 0
Attempt to convert an Integral type a to an Integral type b using
the size of the types as measured by Bits methods.
A simpler version of this function is:
toIntegral :: (Integral a, Integral b) => a -> Maybe b
toIntegral x
| toInteger x == toInteger y = Just y
| otherwise = Nothing
where
y = fromIntegral xThis version requires going through Integer, which can be inefficient.
However, toIntegralSized is optimized to allow GHC to statically determine
the relative type sizes (as measured by bitSizeMaybe and isSigned) and
avoid going through Integer for many types. (The implementation uses
fromIntegral, which is itself optimized with rules for base types but may
go through Integer for some type pairs.)
The Prelude.toEnum method restricted to the type Char.
Boolean "and", lazy in the second argument
Boolean "not"
Boolean "or", lazy in the second argument
Like forkIO, this sparks off a new thread to run the IO computation passed as the first argument, and returns the ThreadId of the newly created thread.
However, forkOS creates a bound thread, which is necessary if you
need to call foreign (non-Haskell) libraries that make use of
thread-local state, such as OpenGL (see Control.Concurrent#boundthreads).
Using forkOS instead of forkIO makes no difference at all to the
scheduling behaviour of the Haskell runtime system. It is a common
misconception that you need to use forkOS instead of forkIO to
avoid blocking all the Haskell threads when making a foreign call;
this isn't the case. To allow foreign calls to be made without
blocking all the Haskell threads (with GHC), it is only necessary to
use the -threaded option when linking your program, and to make sure
the foreign import is not marked unsafe.
Like forkIOWithUnmask, but the child thread is a bound thread, as with forkOS.
Returns True if the calling thread is bound, that is, if it is safe to use foreign libraries that rely on thread-local state from the calling thread.
True if bound threads are supported.
If rtsSupportsBoundThreads is False, isCurrentThreadBound
will always return False and both forkOS and runInBoundThread will
fail.
Run the IO computation passed as the first argument. If the calling thread
is not bound, a bound thread is created temporarily. runInBoundThread
doesn't finish until the IO computation finishes.
You can wrap a series of foreign function calls that rely on thread-local state
with runInBoundThread so that you can use them without knowing whether the
current thread is bound.
Run the IO computation passed as the first argument. If the calling thread
is bound, an unbound thread is created temporarily using forkIO.
runInBoundThread doesn't finish until the IO computation finishes.
Use this function only in the rare case that you have actually observed a
performance loss due to the use of bound threads. A program that
doesn't need its main thread to be bound and makes heavy use of concurrency
(e.g. a web server), might want to wrap its main action in
runInUnboundThread.
Note that exceptions which are thrown to the current thread are thrown in turn to the thread that is executing the given computation. This ensures there's always a way of killing the forked thread.
Suspends the current thread for a given number of microseconds (GHC only).
There is no guarantee that the thread will be rescheduled promptly when the delay has expired, but the thread will never continue to run earlier than specified.
Be careful not to exceed maxBound :: Int, which on 32-bit machines is only
2147483647 μs, less than 36 minutes.
Consider using Control.Concurrent.Thread.Delay.delay from unbounded-delays package.
Perform a series of STM actions atomically.
Using atomically inside an unsafePerformIO or unsafeInterleaveIO subverts some of guarantees that STM provides. It makes it possible to run a transaction inside of another transaction, depending on when the thunk is evaluated. If a nested transaction is attempted, an exception is thrown by the runtime. It is possible to safely use atomically inside unsafePerformIO or unsafeInterleaveIO, but the typechecker does not rule out programs that may attempt nested transactions, meaning that the programmer must take special care to prevent these.
However, there are functions for creating transactional variables that can always be safely called in unsafePerformIO. See: newTVarIO, newTChanIO, newBroadcastTChanIO, newTQueueIO, newTBQueueIO, and newTMVarIO.
Using unsafePerformIO inside of atomically is also dangerous but for different reasons. See unsafeIOToSTM for more on this.
Creates a new thread to run the IO computation passed as the first argument, and returns the ThreadId of the newly created thread.
The new thread will be a lightweight, unbound thread. Foreign calls made by this thread are not guaranteed to be made by any particular OS thread; if you need foreign calls to be made by a particular OS thread, then use forkOS instead.
The new thread inherits the masked state of the parent (see
GHC.Control.Exception.mask).
The newly created thread has an exception handler that discards the exceptions BlockedIndefinitelyOnMVar, BlockedIndefinitelyOnSTM, and ThreadKilled, and passes all other exceptions to the uncaught exception handler.
WARNING: Exceptions in the new thread will not be rethrown in the thread that created it. This means that you might be completely unaware of the problem if/when this happens. You may want to use the async library instead.
Like forkIO, but the child thread is passed a function that can be used to unmask asynchronous exceptions. This function is typically used in the following way
... mask_ $ forkIOWithUnmask $ \unmask ->
catch (unmask ...) handlerso that the exception handler in the child thread is established with asynchronous exceptions masked, meanwhile the main body of the child thread is executed in the unmasked state.
Note that the unmask function passed to the child thread should only be used in that thread; the behaviour is undefined if it is invoked in a different thread.
Like forkIO, but lets you specify on which capability the thread should run. Unlike a forkIO thread, a thread created by forkOn will stay on the same capability for its entire lifetime (forkIO threads can migrate between capabilities according to the scheduling policy). forkOn is useful for overriding the scheduling policy when you know in advance how best to distribute the threads.
The Int argument specifies a capability number (see getNumCapabilities). Typically capabilities correspond to physical processors, but the exact behaviour is implementation-dependent. The value passed to forkOn is interpreted modulo the total number of capabilities as returned by getNumCapabilities.
GHC note: the number of capabilities is specified by the +RTS -N
option when the program is started. Capabilities can be fixed to
actual processor cores with +RTS -qa if the underlying operating
system supports that, although in practice this is usually unnecessary
(and may actually degrade performance in some cases - experimentation
is recommended).
Like forkIOWithUnmask, but the child thread is pinned to the given CPU, as with forkOn.
Returns the number of Haskell threads that can run truly simultaneously (on separate physical processors) at any given time. To change this value, use setNumCapabilities.
killThread raises the ThreadKilled exception in the given thread (GHC only).
killThread tid = throwTo tid ThreadKilledMake a weak pointer to a ThreadId. It can be important to do
this if you want to hold a reference to a ThreadId while still
allowing the thread to receive the BlockedIndefinitely family of
exceptions (e.g. BlockedIndefinitelyOnMVar). Holding a normal
ThreadId reference will prevent the delivery of
BlockedIndefinitely exceptions because the reference could be
used as the target of throwTo at any time, which would unblock
the thread.
Holding a Weak ThreadId, on the other hand, will not prevent the
thread from receiving BlockedIndefinitely exceptions. It is
still possible to throw an exception to a Weak ThreadId, but the
caller must use deRefWeak first to determine whether the thread
still exists.
Returns the ThreadId of the calling thread (GHC only).
Retry execution of the current memory transaction because it has seen values in TVars which mean that it should not continue (e.g. the TVars represent a shared buffer that is now empty). The implementation may block the thread until one of the TVars that it has read from has been updated. (GHC only)
Set the number of Haskell threads that can run truly simultaneously
(on separate physical processors) at any given time. The number
passed to forkOn is interpreted modulo this value. The initial
value is given by the +RTS -N runtime flag.
This is also the number of threads that will participate in parallel garbage collection. It is strongly recommended that the number of capabilities is not set larger than the number of physical processor cores, and it may often be beneficial to leave one or more cores free to avoid contention with other processes in the machine.
Returns the number of the capability on which the thread is currently
running, and a boolean indicating whether the thread is locked to
that capability or not. A thread is locked to a capability if it
was created with forkOn.
A variant of throw that can only be used within the STM monad.
Throwing an exception in STM aborts the transaction and propagates the
exception. If the exception is caught via catchSTM, only the changes
enclosed by the catch are rolled back; changes made outside of catchSTM
persist.
If the exception is not caught inside of the STM, it is re-thrown by atomically, and the entire STM is rolled back.
Although throwSTM has a type that is an instance of the type of throw, the two functions are subtly different:
throw e `seq` x ===> throw e
throwSTM e `seq` x ===> xThe first example will cause the exception e to be raised,
whereas the second one won't. In fact, throwSTM will only cause
an exception to be raised when it is used within the STM monad.
The throwSTM variant should be used in preference to throw to
raise an exception within the STM monad because it guarantees
ordering with respect to other STM operations, whereas throw
does not.
The yield action allows (forces, in a co-operative multitasking implementation) a context-switch to any other currently runnable threads (if any), and is occasionally useful when implementing concurrency abstractions.
Right-to-left composition. This is a synonym for (.), but it can be useful to make
the order of composition more apparent.
Left-to-right composition. This is useful if you want to write a morphism as a pipeline going from left to right.
Deprecated. use mkWeakMVar instead
A slight variation on modifyMVar_ that allows a value to be
returned (b) in addition to the modified value of the MVar.
Like modifyMVar, but the IO action in the second argument is executed with
asynchronous exceptions masked.
Like modifyMVar_, but the IO action in the second argument is executed with
asynchronous exceptions masked.
An exception-safe wrapper for modifying the contents of an MVar. Like withMVar, modifyMVar will replace the original contents of the MVar if an exception is raised during the operation. This function is only atomic if there are no other producers for this MVar. In other words, it cannot guarantee that, by the time modifyMVar_ gets the chance to write to the MVar, the value of the MVar has not been altered by a write operation from another thread.
Take a value from an MVar, put a new value into the MVar and return the value taken. This function is atomic only if there are no other producers for this MVar. In other words, it cannot guarantee that, by the time swapMVar gets the chance to write to the MVar, the value of the MVar has not been altered by a write operation from another thread.
withMVar is an exception-safe wrapper for operating on the contents of an MVar. This operation is exception-safe: it will replace the original contents of the MVar if an exception is raised (see Control.Exception). However, it is only atomic if there are no other producers for this MVar. In other words, it cannot guarantee that, by the time withMVar gets the chance to write to the MVar, the value of the MVar has not been altered by a write operation from another thread.
Like withMVar, but the IO action in the second argument is executed
with asynchronous exceptions masked.
When invoked inside mask, this function allows a masked asynchronous exception to be raised, if one exists. It is equivalent to performing an interruptible operation (see #interruptible), but does not involve any actual blocking.
When called outside mask, or inside uninterruptibleMask, this function has no effect.
Sometimes you want to catch two different sorts of exception. You could do something like
f = expr `catch` \ (ex :: ArithException) -> handleArith ex
`catch` \ (ex :: IOException) -> handleIO exHowever, there are a couple of problems with this approach. The first is
that having two exception handlers is inefficient. However, the more
serious issue is that the second exception handler will catch exceptions
in the first, e.g. in the example above, if handleArith throws an
IOException then the second exception handler will catch it.
Instead, we provide a function catches, which would be used thus:
f = expr `catches` [Handler (\ (ex :: ArithException) -> handleArith ex),
Handler (\ (ex :: IOException) -> handleIO ex)]bracket When you want to acquire a resource, do some work with it, and then release the resource, it is a good idea to use bracket, because bracket will install the necessary exception handler to release the resource in the event that an exception is raised during the computation. If an exception is raised, then bracket will re-raise the exception (after performing the release).
A common example is opening a file:
bracket
(openFile "filename" ReadMode)
(hClose)
(\fileHandle -> do { ... })The arguments to bracket are in this order so that we can partially apply it, e.g.:
withFile name mode = bracket (openFile name mode) hCloseBracket wraps the release action with mask, which is sufficient to ensure
that the release action executes to completion when it does not invoke any
interruptible actions, even in the presence of asynchronous exceptions. For
example, hClose is uninterruptible when it is not racing other uses of the
handle. Similarly, closing a socket (from "network" package) is also
uninterruptible under similar conditions. An example of an interruptible
action is killThread. Completion of interruptible release actions can be
ensured by wrapping them in uninterruptibleMask_, but this risks making
the program non-responsive to Control-C, or timeouts. Another option is to
run the release action asynchronously in its own thread:
void $ uninterruptibleMask_ $ forkIO $ do { ... }The resource will be released as soon as possible, but the thread that invoked bracket will not block in an uninterruptible state.
bracketOnError Like bracket, but only performs the final action if there was an exception raised by the in-between computation.
A variant of bracket where the return value from the first computation is not required.
catchJust The function catchJust is like catch, but it takes an extra argument which is an exception predicate, a function which selects which type of exceptions we're interested in.
catchJust (\e -> if isDoesNotExistErrorType (ioeGetErrorType e) then Just () else Nothing)
(readFile f)
(\_ -> do hPutStrLn stderr ("No such file: " ++ show f)
return "")Any other exceptions which are not matched by the predicate are re-raised, and may be caught by an enclosing catch, catchJust, etc.
finally A specialised variant of bracket with just a computation to run afterward.
A version of catch with the arguments swapped around; useful in situations where the code for the handler is shorter. For example:
do handle (\NonTermination -> exitWith (ExitFailure 1)) $
...This function maps one exception into another as proposed in the paper "A semantics for imprecise exceptions".
Like finally, but only performs the final action if there was an exception raised by the computation.
Similar to catch, but returns an Either result which is
(Right a) if no exception of type e was raised, or (Left ex)
if an exception of type e was raised and its value is ex.
If any other type of exception is raised then it will be propagated
up to the next enclosing exception handler.
try a = catch (Right `liftM` a) (return . Left)Strict version of <$>.
This generalizes the list-based Data.List.filter function.
runIdentity (filterM (Identity . p) xs) == filter p xsExamples
filterM (\x -> do putStrLn ("Keep: " ++ show x ++ "?") answer <- getLine pure (answer == "y")) [1, 2, 3]Keep: 1?yKeep: 2?nKeep: 3?y[1,3]
filterM (\x -> do putStr (show x) x' <- readLn pure (x == x')) [1, 2, 3]122233[2,3]
The foldM function is analogous to foldl, except that its result is
encapsulated in a monad. Note that foldM works from left-to-right over
the list arguments. This could be an issue where (>>) and the `folded
function' are not commutative.
foldM f a1 [x1, x2, ..., xm]
==
do
a2 <- f a1 x1
a3 <- f a2 x2
...
f am xmIf right-to-left evaluation is required, the input list should be reversed.
Like foldM, but discards the result.
Repeat an action indefinitely.
Examples
A common use of forever is to process input from network sockets,
System.IO.Handles, and channels
(e.g. MVar and
Chan).
For example, here is how we might implement an echo server, using forever both to listen for client connections on a network socket and to echo client input on client connection handles:
echoServer :: Socket -> IO ()
echoServer socket = forever $ do
client <- accept socket
forkFinally (echo client) (\_ -> hClose client)
where
echo :: Handle -> IO ()
echo client = forever $
hGetLine client >>= hPutStrLn client
Note that "forever" isn't necessarily non-terminating.
If the action is in a MonadPlus and short-circuits after some number of iterations.
then forever actually returns mzero, effectively short-circuiting its caller.
Conditional failure of Alternative computations. Defined by
guard True = pure ()
guard False = empty
Examples
Common uses of guard include conditionally signalling an error in an error monad and conditionally rejecting the current choice in an Alternative-based parser.
As an example of signalling an error in the error monad Maybe,
consider a safe division function safeDiv x y that returns
Nothing when the denominator y is zero and Just (x `div`
y) otherwise. For example:
safeDiv 4 0Nothing
safeDiv 4 2Just 2
A definition of safeDiv using guards, but not guard:
safeDiv :: Int -> Int -> Maybe Int
safeDiv x y | y /= 0 = Just (x `div` y)
| otherwise = Nothing
A definition of safeDiv using guard and Monad do-notation:
safeDiv :: Int -> Int -> Maybe Int
safeDiv x y = do
guard (y /= 0)
return (x `div` y)
The mapAndUnzipM function maps its first argument over a list, returning the result as a pair of lists. This function is mainly used with complicated data structures or a state monad.
Direct MonadPlus equivalent of Data.List.filter.
Examples
The Data.List.filter function is just mfilter specialized to
the list monad:
Data.List.filter = ( mfilter :: (a -> Bool) -> [a] -> [a] )
An example using mfilter with the Maybe monad:
mfilter odd (Just 1)Just 1mfilter odd (Just 2)Nothing
replicateM n act performs the action act n times,
and then returns the list of results.
replicateM n (pure x) == replicate n xExamples
replicateM 3 getLinehiheyahiya["hi","heya","hiya"]
import Control.Monad.StaterunState (replicateM 3 $ state $ \s -> (s, s + 1)) 1([1,2,3],4)
The reverse of when.
Examples
do x <- getLine unless (x == "hi") (putStrLn "hi!")comingupwithexamplesisdifficulthi!
unless (pi > exp 1) NothingJust ()
Infix version of unsafeShiftL.
Infix version of unsafeShiftR.
Infix version of shiftL.
Infix version of shiftR.
Infix version of xor.
A more concise version of complement zeroBits.
complement (zeroBits :: Word) == (oneBits :: Word)True
complement (oneBits :: Word) == (zeroBits :: Word)True
Note
The constraint on oneBits is arguably too strong. However, as some types
(such as Natural) have undefined complement, this is the only safe
choice.
Case analysis for the Either type.
If the value is Left a, apply the first function to a;
if it is Right b, apply the second function to b.
Examples
We create two values of type Either String Int, one using the
Left constructor and another using the Right constructor. Then
we apply "either" the Prelude.length function (if we have a String)
or the "times-two" function (if we have an Int):
let s = Left "foo" :: Either String Intlet n = Right 3 :: Either String Inteither length (*2) s3either length (*2) n6
Return the contents of a Left-value or a default value otherwise.
Examples
Basic usage:
fromLeft 1 (Left 3)3fromLeft 1 (Right "foo")1
Return the contents of a Right-value or a default value otherwise.
Examples
Basic usage:
fromRight 1 (Right 3)3fromRight 1 (Left "foo")1
Return True if the given value is a Left-value, False otherwise.
Examples
Basic usage:
isLeft (Left "foo")TrueisLeft (Right 3)False
Assuming a Left value signifies some sort of error, we can use isLeft to write a very simple error-reporting function that does absolutely nothing in the case of success, and outputs "ERROR" if any error occurred.
This example shows how isLeft might be used to avoid pattern matching when one does not care about the value contained in the constructor:
import Control.Monad ( when )let report e = when (isLeft e) $ putStrLn "ERROR"report (Right 1)report (Left "parse error")ERROR
Return True if the given value is a Right-value, False otherwise.
Examples
Basic usage:
isRight (Left "foo")FalseisRight (Right 3)True
Assuming a Left value signifies some sort of error, we can use isRight to write a very simple reporting function that only outputs "SUCCESS" when a computation has succeeded.
This example shows how isRight might be used to avoid pattern matching when one does not care about the value contained in the constructor:
import Control.Monad ( when )let report e = when (isRight e) $ putStrLn "SUCCESS"report (Left "parse error")report (Right 1)SUCCESS
Partitions a list of Either into two lists. All the Left elements are extracted, in order, to the first component of the output. Similarly the Right elements are extracted to the second component of the output.
Examples
Basic usage:
let list = [ Left "foo", Right 3, Left "bar", Right 7, Left "baz" ]partitionEithers list(["foo","bar","baz"],[3,7])
The pair returned by partitionEithers x should be the same
pair as (lefts x, rights x):
let list = [ Left "foo", Right 3, Left "bar", Right 7, Left "baz" ]partitionEithers list == (lefts list, rights list)True
Determines whether all elements of the structure satisfy the predicate.
Examples
Basic usage:
all (> 3) []True
all (> 3) [1,2]False
all (> 3) [1,2,3,4,5]False
all (> 3) [1..]False
all (> 3) [4..]* Hangs forever *
and returns the conjunction of a container of Bools. For the result to be True, the container must be finite; False, however, results from a False value finitely far from the left end.
Examples
Basic usage:
and []True
and [True]True
and [False]False
and [True, True, False]False
and (False : repeat True) -- Infinite list [False,True,True,True,...False
and (repeat True)* Hangs forever *
Determines whether any element of the structure satisfies the predicate.
Examples
Basic usage:
any (> 3) []False
any (> 3) [1,2]False
any (> 3) [1,2,3,4,5]True
any (> 3) [1..]True
any (> 3) [0, -1..]* Hangs forever *
The sum of a collection of actions using (<|>), generalizing concat.
asum is just like msum, but generalised to Alternative.
Examples
Basic usage:
asum [Just "Hello", Nothing, Just "World"]Just "Hello"
The concatenation of all the elements of a container of lists.
Examples
Basic usage:
concat (Just [1, 2, 3])[1,2,3]
concat (Left 42)[]
concat [[1, 2, 3], [4, 5], [6], []][1,2,3,4,5,6]
Map a function over all the elements of a container and concatenate the resulting lists.
Examples
Basic usage:
concatMap (take 3) [[1..], [10..], [100..], [1000..]][1,2,3,10,11,12,100,101,102,1000,1001,1002]
concatMap (take 3) (Just [1..])[1,2,3]
Left-to-right monadic fold over the elements of a structure.
Given a structure t with elements (a, b, ..., w, x, y), the result of
a fold with an operator function f is equivalent to:
foldlM f z t = do
aa <- f z a
bb <- f aa b
...
xx <- f ww x
yy <- f xx y
return yy -- Just @return z@ when the structure is emptyFor a Monad m, given two functions f1 :: a -> m b and f2 :: b -> m c,
their Kleisli composition (f1 >=> f2) :: a -> m c is defined by:
(f1 >=> f2) a = f1 a >>= f2Another way of thinking about foldlM is that it amounts to an application
to z of a Kleisli composition:
foldlM f z t =
flip f a >=> flip f b >=> ... >=> flip f x >=> flip f y $ zThe monadic effects of foldlM are sequenced from left to right.
If at some step the bind operator (>>=) short-circuits (as with, e.g.,
mzero in a MonadPlus), the evaluated effects will be from an initial
segment of the element sequence. If you want to evaluate the monadic
effects in right-to-left order, or perhaps be able to short-circuit after
processing a tail of the sequence of elements, you'll need to use foldrM
instead.
If the monadic effects don't short-circuit, the outermost application of
f is to the rightmost element y, so that, ignoring effects, the result
looks like a left fold:
((((z `f` a) `f` b) ... `f` w) `f` x) `f` yExamples
Basic usage:
let f a e = do { print e ; return $ e : a }foldlM f [] [0..3]0123[3,2,1,0]
Right-to-left monadic fold over the elements of a structure.
Given a structure t with elements (a, b, c, ..., x, y), the result of
a fold with an operator function f is equivalent to:
foldrM f z t = do
yy <- f y z
xx <- f x yy
...
bb <- f b cc
aa <- f a bb
return aa -- Just @return z@ when the structure is emptyFor a Monad m, given two functions f1 :: a -> m b and f2 :: b -> m c,
their Kleisli composition (f1 >=> f2) :: a -> m c is defined by:
(f1 >=> f2) a = f1 a >>= f2Another way of thinking about foldrM is that it amounts to an application
to z of a Kleisli composition:
foldrM f z t = f y >=> f x >=> ... >=> f b >=> f a $ zThe monadic effects of foldrM are sequenced from right to left, and e.g.
folds of infinite lists will diverge.
If at some step the bind operator (>>=) short-circuits (as with, e.g.,
mzero in a MonadPlus), the evaluated effects will be from a tail of the
element sequence. If you want to evaluate the monadic effects in
left-to-right order, or perhaps be able to short-circuit after an initial
sequence of elements, you'll need to use foldlM instead.
If the monadic effects don't short-circuit, the outermost application of
f is to the leftmost element a, so that, ignoring effects, the result
looks like a right fold:
a `f` (b `f` (c `f` (... (x `f` (y `f` z))))).Examples
Basic usage:
let f i acc = do { print i ; return $ i : acc }foldrM f [] [0..3]3210[0,1,2,3]
for_ is traverse_ with its arguments flipped. For a version that doesn't ignore the results see for. This is forM_ generalised to Applicative actions.
for_ is just like forM_, but generalised to Applicative actions.
Examples
Basic usage:
for_ [1..4] print1234
The largest element of a non-empty structure with respect to the given comparison function. Structure order is used as a tie-breaker: if there are multiple largest elements, the rightmost of them is chosen.
Examples
Basic usage:
maximumBy (compare `on` length) ["Hello", "World", "!", "Longest", "bar"]"Longest"
WARNING: This function is partial for possibly-empty structures like lists.
The least element of a non-empty structure with respect to the given comparison function. Structure order is used as a tie-breaker: if there are multiple least elements, the leftmost of them is chosen.
Examples
Basic usage:
minimumBy (compare `on` length) ["Hello", "World", "!", "Longest", "bar"]"!"
WARNING: This function is partial for possibly-empty structures like lists.
notElem is the negation of elem.
Examples
Basic usage:
3 `notElem` []True
3 `notElem` [1,2]True
3 `notElem` [1,2,3,4,5]False
For infinite structures, notElem terminates if the value exists at a finite distance from the left side of the structure:
3 `notElem` [1..]False
3 `notElem` ([4..] ++ [3])* Hangs forever *
or returns the disjunction of a container of Bools. For the result to be False, the container must be finite; True, however, results from a True value finitely far from the left end.
Examples
Basic usage:
or []False
or [True]True
or [False]False
or [True, True, False]True
or (True : repeat False) -- Infinite list [True,False,False,False,...True
or (repeat False)* Hangs forever *
Evaluate each action in the structure from left to right, and ignore the results. For a version that doesn't ignore the results see sequenceA.
sequenceA_ is just like sequence_, but generalised to Applicative actions.
Examples
Basic usage:
sequenceA_ [print "Hello", print "world", print "!"]"Hello""world""!"
Evaluate each monadic action in the structure from left to right,
and ignore the results. For a version that doesn't ignore the
results see Data.Traversable.sequence.
sequence_ is just like sequenceA_, but specialised to monadic actions.
Map each element of a structure to an Applicative action, evaluate these actions from left to right, and ignore the results. For a version that doesn't ignore the results see traverse.
traverse_ is just like mapM_, but generalised to Applicative actions.
Examples
Basic usage:
traverse_ print ["Hello", "world", "!"]"Hello""world""!"
& is a reverse application operator. This provides notational convenience. Its precedence is one higher than that of the forward application operator $, which allows & to be nested in $.
This is a version of flip id, where id is specialized from a -> a to (a -> b) -> (a -> b)
which by the associativity of (->) is (a -> b) -> a -> b.
flipping this yields a -> (a -> b) -> b which is the type signature of &
Examples
5 & (+1) & show"6"
sqrt $ [1 / n^2 | n <- [1..1000]] & sum & (*6)3.1406380562059946
on b u x y runs the binary function b on the results of applying
unary function u to two arguments x and y. From the opposite
perspective, it transforms two inputs and combines the outputs.
(op `on` f) x y = f x `op` f yExamples
sortBy (compare `on` length) [[0, 1, 2], [0, 1], [], [0]][[],[0],[0,1],[0,1,2]]
((+) `on` length) [1, 2, 3] [-1]4
((,) `on` (*2)) 2 3(4,6)
Algebraic properties
Flipped version of <$.
Examples
Replace the contents of a Maybe Int with a constant
String:
Nothing $> "foo"Nothing
Just 90210 $> "foo"Just "foo"
Replace the contents of an Either Int Int
with a constant String, resulting in an Either
Int String:
Left 8675309 $> "foo"Left 8675309
Right 8675309 $> "foo"Right "foo"
Replace each element of a list with a constant String:
[1,2,3] $> "foo"["foo","foo","foo"]
Replace the second element of a pair with a constant String:
(1,2) $> "foo"(1,"foo")
An infix synonym for fmap.
The name of this operator is an allusion to Prelude.$.
Note the similarities between their types:
($) :: (a -> b) -> a -> b
(<$>) :: Functor f => (a -> b) -> f a -> f bWhereas Prelude.$ is function application, <$> is function
application lifted over a Functor.
Examples
Convert from a Maybe Int to a Maybe
String using show:
show <$> NothingNothing
show <$> Just 3Just "3"
Convert from an Either Int Int to an
Either Int String using show:
show <$> Left 17Left 17
show <$> Right 17Right "17"
Double each element of a list:
(*2) <$> [1,2,3][2,4,6]
Apply even to the second element of a pair:
even <$> (2,2)(2,True)
void value discards or ignores the result of evaluation, such
as the return value of an System.IO.IO action.
Examples
Replace the contents of a Maybe Int with unit:
void NothingNothing
void (Just 3)Just ()
Replace the contents of an Either Int Int
with unit, resulting in an Either Int :()
void (Left 8675309)Left 8675309
void (Right 8675309)Right ()
Replace every element of a list with unit:
void [1,2,3][(),(),()]
Replace the second element of a pair with unit:
void (1,2)(1,())
Discard the result of an System.IO.IO action:
mapM print [1,2]12[(),()]
void $ mapM print [1,2]12
The catMaybes function takes a list of Maybes and returns a list of all the Just values.
Examples
Basic usage:
catMaybes [Just 1, Nothing, Just 3][1,3]
When constructing a list of Maybe values, catMaybes can be used to return all of the "success" results (if the list is the result of a map, then mapMaybe would be more appropriate):
import GHC.Internal.Text.Read ( readMaybe )[readMaybe x :: Maybe Int | x <- ["1", "Foo", "3"] ][Just 1,Nothing,Just 3]catMaybes $ [readMaybe x :: Maybe Int | x <- ["1", "Foo", "3"] ][1,3]
The fromMaybe function takes a default value and a Maybe value. If the Maybe is Nothing, it returns the default value; otherwise, it returns the value contained in the Maybe.
Examples
Basic usage:
fromMaybe "" (Just "Hello, World!")"Hello, World!"
fromMaybe "" Nothing""
Read an integer from a string using readMaybe. If we fail to
parse an integer, we want to return 0 by default:
import GHC.Internal.Text.Read ( readMaybe )fromMaybe 0 (readMaybe "5")5fromMaybe 0 (readMaybe "")0
isJust x returns True when x is of the form Just _ and False
otherwise.
Examples
Basic usage:
isJust (Just 3)True
isJust (Just ())True
isJust NothingFalse
Only the outer constructor is taken into consideration:
isJust (Just Nothing)True
isNothing x returns True when x is Nothing and False otherwise.
Examples
Basic usage:
isNothing (Just 3)False
isNothing (Just ())False
isNothing NothingTrue
Only the outer constructor is taken into consideration:
isNothing (Just Nothing)False
The listToMaybe function returns Nothing on an empty list
or Just a where a is the first element of the list.
Examples
Basic usage:
listToMaybe []Nothing
listToMaybe [9]Just 9
listToMaybe [1,2,3]Just 1
Composing maybeToList with listToMaybe should be the identity on singleton/empty lists:
maybeToList $ listToMaybe [5][5]maybeToList $ listToMaybe [][]
But not on lists with more than one element:
maybeToList $ listToMaybe [1,2,3][1]
The mapMaybe function is a version of map which can throw
out elements. In particular, the functional argument returns
something of type Maybe b. If this is Nothing, no element
is added on to the result list. If it is Just b, then b is
included in the result list.
Examples
Using mapMaybe f x is a shortcut for catMaybes $ map f x
in most cases:
import GHC.Internal.Text.Read ( readMaybe )let readMaybeInt = readMaybe :: String -> Maybe IntmapMaybe readMaybeInt ["1", "Foo", "3"][1,3]catMaybes $ map readMaybeInt ["1", "Foo", "3"][1,3]
If we map the Just constructor, the entire list should be returned:
mapMaybe Just [1,2,3][1,2,3]
The maybe function takes a default value, a function, and a Maybe value. If the Maybe value is Nothing, the function returns the default value. Otherwise, it applies the function to the value inside the Just and returns the result.
Examples
Basic usage:
maybe False odd (Just 3)True
maybe False odd NothingFalse
Read an integer from a string using readMaybe. If we succeed,
return twice the integer; that is, apply (*2) to it. If instead
we fail to parse an integer, return 0 by default:
import GHC.Internal.Text.Read ( readMaybe )maybe 0 (*2) (readMaybe "5")10maybe 0 (*2) (readMaybe "")0
Apply show to a Maybe Int. If we have Just n, we want to show
the underlying Int n. But if we have Nothing, we return the
empty string instead of (for example) "Nothing":
maybe "" show (Just 5)"5"maybe "" show Nothing""
The maybeToList function returns an empty list when given Nothing or a singleton list when given Just.
Examples
Basic usage:
maybeToList (Just 7)[7]
maybeToList Nothing[]
One can use maybeToList to avoid pattern matching when combined with a function that (safely) works on lists:
import GHC.Internal.Text.Read ( readMaybe )sum $ maybeToList (readMaybe "3")3sum $ maybeToList (readMaybe "")0
The genericDrop function is an overloaded version of drop, which accepts any Integral value as the number of elements to drop.
\mathcal{O}(n). The genericLength function is an overloaded version
of length. In particular, instead of returning an Int, it returns any
type which is an instance of Num. It is, however, less efficient than
length.
Examples
genericLength [1, 2, 3] :: Int3genericLength [1, 2, 3] :: Float3.0
Users should take care to pick a return type that is wide enough to contain
the full length of the list. If the width is insufficient, the overflow
behaviour will depend on the (+) implementation in the selected Num
instance. The following example overflows because the actual list length
of 200 lies outside of the Int8 range of -128..127.
genericLength [1..200] :: Int8-56
The genericReplicate function is an overloaded version of replicate, which accepts any Integral value as the number of repetitions to make.
The genericSplitAt function is an overloaded version of splitAt, which accepts any Integral value as the position at which to split.
The genericTake function is an overloaded version of take, which accepts any Integral value as the number of elements to take.
The group function takes a list and returns a list of lists such that the concatenation of the result is equal to the argument. Moreover, each sublist in the result is non-empty, all elements are equal to the first one, and consecutive equal elements of the input end up in the same element of the output list.
group is a special case of groupBy, which allows the programmer to supply their own equality test.
It's often preferable to use Data.List.NonEmpty.group,
which provides type-level guarantees of non-emptiness of inner lists.
A common idiom to squash repeating elements map head . group
is better served by
map Data.List.NonEmpty.head . Data.List.NonEmpty.group
because it avoids partial functions.
Examples
group "Mississippi"["M","i","ss","i","ss","i","pp","i"]
group [1, 1, 1, 2, 2, 3, 4, 5, 5][[1,1,1],[2,2],[3],[4],[5,5]]
The groupBy function is the non-overloaded version of group.
When a supplied relation is not transitive, it is important to remember that equality is checked against the first element in the group, not against the nearest neighbour:
groupBy (\a b -> b - a < 5) [0..19][[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],[15,16,17,18,19]]
It's often preferable to use Data.List.NonEmpty.groupBy,
which provides type-level guarantees of non-emptiness of inner lists.
Examples
groupBy (/=) [1, 1, 1, 2, 3, 1, 4, 4, 5][[1],[1],[1,2,3],[1,4,4,5]]
groupBy (>) [1, 3, 5, 1, 4, 2, 6, 5, 4][[1],[3],[5,1,4,2],[6,5,4]]
groupBy (const not) [True, False, True, False, False, False, True][[True,False],[True,False,False,False],[True]]
The inits function returns all initial segments of the argument, shortest first.
inits is semantically equivalent to map reverse . scanl (flip (:)) [],
but under the hood uses a queue to amortize costs of reverse.
Laziness
Note that inits has the following strictness property:
inits (xs ++ _|_) = inits xs ++ _|_
In particular,
inits _|_ = [] : _|_
Examples
inits "abc"["","a","ab","abc"]
inits [][[]]
inits is productive on infinite lists:
take 5 $ inits [1..][[],[1],[1,2],[1,2,3],[1,2,3,4]]
intercalate xs xss is equivalent to (concat (intersperse xs xss)).
It inserts the list xs in between the lists in xss and concatenates the
result.
Laziness
intercalate has the following properties:
take 5 (intercalate undefined ("Lorem" : undefined))"Lorem"
take 6 (intercalate ", " ("Lorem" : undefined))"Lorem*** Exception: Prelude.undefined
Examples
intercalate ", " ["Lorem", "ipsum", "dolor"]"Lorem, ipsum, dolor"
intercalate [0, 1] [[2, 3], [4, 5, 6], []][2,3,0,1,4,5,6,0,1]
intercalate [1, 2, 3] [[], []][1,2,3]
\mathcal{O}(n). The intersperse function takes an element and a list
and `intersperses' that element between the elements of the list.
Laziness
intersperse has the following properties
take 1 (intersperse undefined ('a' : undefined))"a"
take 2 (intersperse ',' ('a' : undefined))"a*** Exception: Prelude.undefined
Examples
intersperse ',' "abcde""a,b,c,d,e"
intersperse 1 [3, 4, 5][3,1,4,1,5]
The isInfixOf function takes two lists and returns True iff the first list is contained, wholly and intact, anywhere within the second.
Examples
isInfixOf "Haskell" "I really like Haskell."True
isInfixOf "Ial" "I really like Haskell."False
For the result to be True, the first list must be finite; for the result to be False, the second list must be finite:
[20..50] `isInfixOf` [0..]True
[0..] `isInfixOf` [20..50]False
[0..] `isInfixOf` [0..]* Hangs forever *
\mathcal{O}(\min(m,n)). The isPrefixOf function takes two lists and
returns True iff the first list is a prefix of the second.
Examples
"Hello" `isPrefixOf` "Hello World!"True
"Hello" `isPrefixOf` "Wello Horld!"False
For the result to be True, the first list must be finite; False, however, results from any mismatch:
[0..] `isPrefixOf` [1..]False
[0..] `isPrefixOf` [0..99]False
[0..99] `isPrefixOf` [0..]True
[0..] `isPrefixOf` [0..]* Hangs forever *
isPrefixOf shortcuts when the first argument is empty:
isPrefixOf [] undefinedTrue
The isSuffixOf function takes two lists and returns True iff the first list is a suffix of the second.
Examples
"ld!" `isSuffixOf` "Hello World!"True
"World" `isSuffixOf` "Hello World!"False
The second list must be finite; however the first list may be infinite:
[0..] `isSuffixOf` [0..99]False
[0..99] `isSuffixOf` [0..]* Hangs forever *
The permutations function returns the list of all permutations of the argument.
Note that the order of permutations is not lexicographic. It satisfies the following property:
map (take n) (take (product [1..n]) (permutations ([1..n] ++ undefined))) == permutations [1..n]Laziness
The permutations function is maximally lazy:
for each n, the value of permutations xs starts with those permutations
that permute take n xs and keep drop n xs.
Examples
permutations "abc"["abc","bac","cba","bca","cab","acb"]
permutations [1, 2][[1,2],[2,1]]
permutations [][[]]
This function is productive on infinite inputs:
take 6 $ map (take 3) $ permutations ['a'..]["abc","bac","cba","bca","cab","acb"]
The sort function implements a stable sorting algorithm. It is a special case of sortBy, which allows the programmer to supply their own comparison function.
Elements are arranged from lowest to highest, keeping duplicates in the order they appeared in the input.
The argument must be finite.
Examples
sort [1,6,4,3,2,5][1,2,3,4,5,6]
sort "haskell""aehklls"
import Data.Semigroup(Arg(..))sort [Arg ":)" 0, Arg ":D" 0, Arg ":)" 1, Arg ":3" 0, Arg ":D" 1][Arg ":)" 0,Arg ":)" 1,Arg ":3" 0,Arg ":D" 0,Arg ":D" 1]
The sortBy function is the non-overloaded version of sort. The argument must be finite.
The supplied comparison relation is supposed to be reflexive and antisymmetric,
otherwise, e. g., for _ _ -> GT, the ordered list simply does not exist.
The relation is also expected to be transitive: if it is not then sortBy
might fail to find an ordered permutation, even if it exists.
Examples
sortBy (\(a,_) (b,_) -> compare a b) [(2, "world"), (4, "!"), (1, "Hello")][(1,"Hello"),(2,"world"),(4,"!")]
The subsequences function returns the list of all subsequences of the argument.
Laziness
subsequences does not look ahead unless it must:
take 1 (subsequences undefined)[[]]take 2 (subsequences ('a' : undefined))["","a"]
Examples
subsequences "abc"["","a","b","ab","c","ac","bc","abc"]
This function is productive on infinite inputs:
take 8 $ subsequences ['a'..]["","a","b","ab","c","ac","bc","abc"]
\mathcal{O}(n). The tails function returns all final segments of the
argument, longest first.
Laziness
Note that tails has the following strictness property:
tails _|_ = _|_ : _|_
tails undefined[*** Exception: Prelude.undefined
drop 1 (tails [undefined, 1, 2])[[1, 2], [2], []]
Examples
tails "abc"["abc","bc","c",""]
tails [1, 2, 3][[1,2,3],[2,3],[3],[]]
tails [][[]]
The transpose function transposes the rows and columns of its argument.
Laziness
transpose is lazy in its elements
take 1 (transpose ['a' : undefined, 'b' : undefined])["ab"]
Examples
transpose [[1,2,3],[4,5,6]][[1,4],[2,5],[3,6]]
If some of the rows are shorter than the following rows, their elements are skipped:
transpose [[10,11],[20],[],[30,31,32]][[10,20,30],[11,31],[32]]
For this reason the outer list must be finite; otherwise transpose hangs:
transpose (repeat [])* Hangs forever *
The unfoldr function is a `dual' to foldr: while foldr
reduces a list to a summary value, unfoldr builds a list from
a seed value. The function takes the element and returns Nothing
if it is done producing the list or returns Just (a,b), in which
case, a is a prepended to the list and b is used as the next
element in a recursive call. For example,
iterate f == unfoldr (\x -> Just (x, f x))In some cases, unfoldr can undo a foldr operation:
unfoldr f' (foldr f z xs) == xsif the following holds:
f' (f x y) = Just (x,y)
f' z = NothingLaziness
take 1 (unfoldr (\x -> Just (x, undefined)) 'a')"a"
Examples
unfoldr (\b -> if b == 0 then Nothing else Just (b, b-1)) 10[10,9,8,7,6,5,4,3,2,1]
take 10 $ unfoldr (\(x, y) -> Just (x, (y, x + y))) (0, 1)[0,1,1,2,3,5,8,13,21,54]
comparing p x y = compare (p x) (p y)Useful combinator for use in conjunction with the xxxBy family
of functions from Data.List, for example:
... sortBy (comparing fst) ...This function may be used as a value for fmap in a Functor instance, provided that traverse is defined. (Using fmapDefault with a Traversable instance defined only by sequenceA will result in infinite recursion.)
fmapDefault f ≡ runIdentity . traverse (Identity . f)
The mapAccumL function behaves like a combination of fmap and foldl; it applies a function to each element of a structure, passing an accumulating parameter from left to right, and returning a final value of this accumulator together with the new structure.
Examples
Basic usage:
mapAccumL (\a b -> (a + b, a)) 0 [1..10](55,[0,1,3,6,10,15,21,28,36,45])
mapAccumL (\a b -> (a <> show b, a)) "0" [1..5]("012345",["0","01","012","0123","01234"])
The mapAccumM function behaves like a combination of mapM and mapAccumL that traverses the structure while evaluating the actions and passing an accumulating parameter from left to right. It returns a final value of this accumulator together with the new structure. The accumulator is often used for caching the intermediate results of a computation.
Examples
Basic usage:
let expensiveDouble a = putStrLn ("Doubling " <> show a) >> pure (2 * a):{mapAccumM (\cache a -> case lookup a cache of Nothing -> expensiveDouble a >>= \double -> pure ((a, double):cache, double) Just double -> pure (cache, double) ) [] [1, 2, 3, 1, 2, 3]:}Doubling 1Doubling 2Doubling 3([(3,6),(2,4),(1,2)],[2,4,6,2,4,6])
The mapAccumR function behaves like a combination of fmap and foldr; it applies a function to each element of a structure, passing an accumulating parameter from right to left, and returning a final value of this accumulator together with the new structure.
Examples
Basic usage:
mapAccumR (\a b -> (a + b, a)) 0 [1..10](55,[54,52,49,45,40,34,27,19,10,0])
mapAccumR (\a b -> (a <> show b, a)) "0" [1..5]("054321",["05432","0543","054","05","0"])
Convert an uncurried function to a curried function.
Examples
curry fst 1 21
Extract the first component of a pair.
Extract the second component of a pair.
Swap the components of a pair.
uncurry converts a curried function to a function on pairs.
Examples
uncurry (+) (1,2)3
uncurry ($) (show, 1)"1"
map (uncurry max) [(1,2), (3,4), (6,8)][2,4,8]
Type-safe cast, using representational equality
Convert propositional (nominal) equality to representational equality
Type-safe cast, using propositional equality
Generalized form of type-safe cast using propositional equality
Symmetry of equality
Transitivity of equality
Observe a type representation for the type of a value.
Takes a value of type a and returns a concrete representation
of that type.
catch This is the simplest of the exception-catching functions. It takes a single argument, runs it, and if an exception is raised the "handler" is executed, with the value of the exception passed as an argument. Otherwise, the result is returned as normal. For example:
catch (readFile f)
(\e -> do let err = show (e :: IOException)
hPutStr stderr ("Warning: Couldn't open " ++ f ++ ": " ++ err)
return "")Note that we have to give a type signature to e, or the program
will not typecheck as the type is ambiguous. While it is possible
to catch exceptions of any type, see the section "Catching all
exceptions" (in Control.Exception) for an explanation of the problems with doing so.
For catching exceptions in pure (non-IO) expressions, see the function evaluate.
Note that due to Haskell's unspecified evaluation order, an
expression may throw one of several possible exceptions: consider
the expression (error "urk") + (1 `div` 0). Does
the expression throw
ErrorCall "urk", or DivideByZero?
The answer is "it might throw either"; the choice is
non-deterministic. If you are catching any type of exception then you
might catch either. If you are calling catch with type
IO Int -> (ArithException -> IO Int) -> IO Int then the handler may
get run with DivideByZero as an argument, or an ErrorCall "urk"
exception may be propagated further up. If you call it again, you
might get the opposite behaviour. This is ok, because catch is an
IO computation.
Evaluate the argument to weak head normal form.
evaluate is typically used to uncover any exceptions that a lazy value may contain, and possibly handle them.
evaluate only evaluates to weak head normal form. If deeper
evaluation is needed, the force function from Control.DeepSeq
may be handy:
evaluate $ force xThere is a subtle difference between evaluate x and return $! x,
analogous to the difference between throwIO and throw. If the lazy
value x throws an exception, return $! x will fail to return an
IO action and will throw an exception instead. evaluate x, on the
other hand, always produces an IO action; that action will throw an
exception upon execution iff x throws an exception upon evaluation.
The practical implication of this difference is that due to the imprecise exceptions semantics,
(return $! error "foo") >> error "bar"may throw either "foo" or "bar", depending on the optimizations
performed by the compiler. On the other hand,
evaluate (error "foo") >> error "bar"is guaranteed to throw "foo".
The rule of thumb is to use evaluate to force or handle exceptions in
lazy values. If, on the other hand, you are forcing a lazy value for
efficiency reasons only and do not care about exceptions, you may
use return $! x.
Returns the MaskingState for the current thread.
Allow asynchronous exceptions to be raised even inside mask, making
the operation interruptible (see the discussion of "Interruptible operations"
in Control.Exception).
When called outside mask, or inside uninterruptibleMask, this function has no effect.
Executes an IO computation with asynchronous exceptions masked. That is, any thread which attempts to raise an exception in the current thread with throwTo will be blocked until asynchronous exceptions are unmasked again.
The argument passed to mask is a function that takes as its argument another function, which can be used to restore the prevailing masking state within the context of the masked computation. For example, a common way to use mask is to protect the acquisition of a resource:
mask $ \restore -> do
x <- acquire
restore (do_something_with x) `onException` release
releaseThis code guarantees that acquire is paired with release, by masking
asynchronous exceptions for the critical parts. (Rather than write
this code yourself, it would be better to use
bracket which abstracts the general pattern).
Note that the restore action passed to the argument to mask
does not necessarily unmask asynchronous exceptions, it just
restores the masking state to that of the enclosing context. Thus
if asynchronous exceptions are already masked, mask cannot be used
to unmask exceptions again. This is so that if you call a library function
with exceptions masked, you can be sure that the library call will not be
able to unmask exceptions again. If you are writing library code and need
to use asynchronous exceptions, the only way is to create a new thread;
see forkIOWithUnmask.
Asynchronous exceptions may still be received while in the masked
state if the masked thread blocks in certain ways; see
Control.Exception#interruptible.
Threads created by forkIO inherit the
MaskingState from the parent; that is, to start a thread in the
MaskedInterruptible state,
use mask_ $ forkIO .... This is particularly useful if you need
to establish an exception handler in the forked thread before any
asynchronous exceptions are received. To create a new thread in
an unmasked state use forkIOWithUnmask.
Like mask, but does not pass a restore action to the argument.
Like mask, but the masked computation is not interruptible (see
Control.Exception#interruptible). THIS SHOULD BE USED WITH
GREAT CARE, because if a thread executing in uninterruptibleMask
blocks for any reason, then the thread (and possibly the program,
if this is the main thread) will be unresponsive and unkillable.
This function should only be necessary if you need to mask
exceptions around an interruptible operation, and you can guarantee
that the interruptible operation will only block for a short period
of time.
Like uninterruptibleMask, but does not pass a restore action
to the argument.
openFile The computation openFile path mode returns a file handle that can be
used to interact with the file.
The handle is open in text mode with localeEncoding.
You can change the encoding with System.IO.hSetEncoding.
stderr is a handle managing the programs standard error.
stdin is a handle managing the programs standard input.
stdout is a handle managing the programs standard output.
withFile The computation withFile path mode action opens the file and runs action
with the obtained handle before closing the file.
Even when an exception is raised within the action, the file will still be closed.
This is why withFile path mode act is preferable to
openFile path mode >>= (\hdl -> act hdl >>= System.IO.hClose hdl)See also: System.IO.bracket
break, applied to a predicate p and a list xs, returns a tuple where
first element is longest prefix (possibly empty) of xs of elements that
do not satisfy p and second element is the remainder of the list:
break p is equivalent to span (not . p)
and consequently to (takeWhile (not . p) xs, dropWhile (not . p) xs),
even if p is _|_.
Laziness
break undefined []([],[])
fst (break (const True) undefined)*** Exception: Prelude.undefined
fst (break (const True) (undefined : undefined))[]
take 1 (fst (break (const False) (1 : undefined)))[1]
break produces the first component of the tuple lazily:
take 10 (fst (break (const False) [1..]))[1,2,3,4,5,6,7,8,9,10]
Examples
break (> 3) [1,2,3,4,1,2,3,4]([1,2,3],[4,1,2,3,4])
break (< 9) [1,2,3]([],[1,2,3])
break (> 9) [1,2,3]([1,2,3],[])
cycle ties a finite list into a circular one, or equivalently, the infinite repetition of the original list. It is the identity on infinite lists.
Examples
cycle []*** Exception: Prelude.cycle: empty list
take 10 (cycle [42])[42,42,42,42,42,42,42,42,42,42]
take 10 (cycle [2, 5, 7])[2,5,7,2,5,7,2,5,7,2]
take 1 (cycle (42 : undefined))[42]
drop n xs returns the suffix of xs
after the first n elements, or [] if n >= length xs.
It is an instance of the more general genericDrop,
in which n may be of any integral type.
Examples
drop 6 "Hello World!""World!"
drop 3 [1,2,3,4,5][4,5]
drop 3 [1,2][]
drop 3 [][]
drop (-1) [1,2][1,2]
drop 0 [1,2][1,2]
\mathcal{O}(n). filter, applied to a predicate and a list, returns
the list of those elements that satisfy the predicate; i.e.,
filter p xs = [ x | x <- xs, p x]Examples
filter odd [1, 2, 3][1,3]
filter (\l -> length l > 3) ["Hello", ", ", "World", "!"]["Hello","World"]
filter (/= 3) [1, 2, 3, 4, 3, 2, 1][1,2,4,2,1]
iterate f x returns an infinite list of repeated applications
of f to x:
iterate f x == [x, f x, f (f x), ...]Laziness
Note that iterate is lazy, potentially leading to thunk build-up if the consumer doesn't force each iterate. See iterate' for a strict variant of this function.
take 1 $ iterate undefined 42[42]
Examples
take 10 $ iterate not True[True,False,True,False,True,False,True,False,True,False]
take 10 $ iterate (+3) 42[42,45,48,51,54,57,60,63,66,69]
iterate id == repeat:
take 10 $ iterate id 1[1,1,1,1,1,1,1,1,1,1]
repeat x is an infinite list, with x the value of every element.
Examples
take 10 $ repeat 17[17,17,17,17,17,17,17,17,17, 17]
repeat undefined[*** Exception: Prelude.undefined
replicate n x is a list of length n with x the value of
every element.
It is an instance of the more general genericReplicate,
in which n may be of any integral type.
Examples
replicate 0 True[]
replicate (-1) True[]
replicate 4 True[True,True,True,True]
\mathcal{O}(n). reverse xs returns the elements of xs in reverse order.
xs must be finite.
Laziness
reverse is lazy in its elements.
head (reverse [undefined, 1])1
reverse (1 : 2 : undefined)*** Exception: Prelude.undefined
Examples
reverse [][]
reverse [42][42]
reverse [2,5,7][7,5,2]
reverse [1..]* Hangs forever *
\mathcal{O}(n). scanl is similar to foldl, but returns a list of
successive reduced values from the left:
scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...]Note that
last (scanl f z xs) == foldl f z xsExamples
scanl (+) 0 [1..4][0,1,3,6,10]
scanl (+) 42 [][42]
scanl (-) 100 [1..4][100,99,97,94,90]
scanl (\reversedString nextChar -> nextChar : reversedString) "foo" ['a', 'b', 'c', 'd']["foo","afoo","bafoo","cbafoo","dcbafoo"]
take 10 (scanl (+) 0 [1..])[0,1,3,6,10,15,21,28,36,45]
take 1 (scanl undefined 'a' undefined)"a"
\mathcal{O}(n). A strict version of scanl.
\mathcal{O}(n). scanr is the right-to-left dual of scanl. Note that the order of parameters on the accumulating function are reversed compared to scanl.
Also note that
head (scanr f z xs) == foldr f z xs.Examples
scanr (+) 0 [1..4][10,9,7,4,0]
scanr (+) 42 [][42]
scanr (-) 100 [1..4][98,-97,99,-96,100]
scanr (\nextChar reversedString -> nextChar : reversedString) "foo" ['a', 'b', 'c', 'd']["abcdfoo","bcdfoo","cdfoo","dfoo","foo"]
force $ scanr (+) 0 [1..]*** Exception: stack overflow
splitAt n xs returns a tuple where first element is xs prefix of
length n and second element is the remainder of the list:
splitAt is an instance of the more general genericSplitAt,
in which n may be of any integral type.
Laziness
It is equivalent to (take n xs, drop n xs)
unless n is _|_:
splitAt _|_ xs = _|_, not (_|_, _|_)).
The first component of the tuple is produced lazily:
fst (splitAt 0 undefined)[]
take 1 (fst (splitAt 10 (1 : undefined)))[1]
Examples
splitAt 6 "Hello World!"("Hello ","World!")
splitAt 3 [1,2,3,4,5]([1,2,3],[4,5])
splitAt 1 [1,2,3]([1],[2,3])
splitAt 3 [1,2,3]([1,2,3],[])
splitAt 4 [1,2,3]([1,2,3],[])
splitAt 0 [1,2,3]([],[1,2,3])
splitAt (-1) [1,2,3]([],[1,2,3])
take n, applied to a list xs, returns the prefix of xs
of length n, or xs itself if n >= length xs.
It is an instance of the more general genericTake,
in which n may be of any integral type.
Laziness
take 0 undefined[]take 2 (1 : 2 : undefined)[1,2]
Examples
take 5 "Hello World!""Hello"
take 3 [1,2,3,4,5][1,2,3]
take 3 [1,2][1,2]
take 3 [][]
take (-1) [1,2][]
take 0 [1,2][]
takeWhile, applied to a predicate p and a list xs, returns the
longest prefix (possibly empty) of xs of elements that satisfy p.
Laziness
takeWhile (const False) undefined*** Exception: Prelude.undefined
takeWhile (const False) (undefined : undefined)[]
take 1 (takeWhile (const True) (1 : undefined))[1]
Examples
takeWhile (< 3) [1,2,3,4,1,2,3,4][1,2]
takeWhile (< 9) [1,2,3][1,2,3]
takeWhile (< 0) [1,2,3][]
unzip transforms a list of pairs into a list of first components and a list of second components.
Examples
unzip []([],[])
unzip [(1, 'a'), (2, 'b')]([1,2],"ab")
\mathcal{O}(\min(m,n)). zip takes two lists and returns a list of
corresponding pairs.
zip is right-lazy:
zip [] undefined[]zip undefined []*** Exception: Prelude.undefined...
zip is capable of list fusion, but it is restricted to its first list argument and its resulting list.
Examples
zip [1, 2, 3] ['a', 'b', 'c'][(1,'a'),(2,'b'),(3,'c')]
If one input list is shorter than the other, excess elements of the longer list are discarded, even if one of the lists is infinite:
zip [1] ['a', 'b'][(1,'a')]
zip [1, 2] ['a'][(1,'a')]
zip [] [1..][]
zip [1..] [][]
\mathcal{O}(\min(m,n)). zipWith generalises zip by zipping with the
function given as the first argument, instead of a tupling function.
zipWith (,) xs ys == zip xs ys
zipWith f [x1,x2,x3..] [y1,y2,y3..] == [f x1 y1, f x2 y2, f x3 y3..]zipWith is right-lazy:
let f = undefinedzipWith f [] undefined[]
zipWith is capable of list fusion, but it is restricted to its first list argument and its resulting list.
Examples
zipWith can be applied to two lists to produce the list of
corresponding sums:(+)
zipWith (+) [1, 2, 3] [4, 5, 6][5,7,9]
zipWith (++) ["hello ", "foo"] ["world!", "bar"]["hello world!","foobar"]
Check whether a given MVar is empty.
Notice that the boolean value returned is just a snapshot of the state of the MVar. By the time you get to react on its result, the MVar may have been filled (or emptied) - so be extremely careful when using this operation. Use tryTakeMVar instead if possible.
Create an MVar which is initially empty.
Create an MVar which contains the supplied value.
Put a value into an MVar. If the MVar is currently full, putMVar will wait until it becomes empty.
There are two further important properties of putMVar:
putMVar is single-wakeup. That is, if there are multiple threads blocked in putMVar, and the MVar becomes empty, only one thread will be woken up. The runtime guarantees that the woken thread completes its putMVar operation.
When multiple threads are blocked on an MVar, they are woken up in FIFO order. This is useful for providing fairness properties of abstractions built using MVars.
Atomically read the contents of an MVar. If the MVar is currently empty, readMVar will wait until it is full. readMVar is guaranteed to receive the next putMVar.
readMVar is multiple-wakeup, so when multiple readers are blocked on an MVar, all of them are woken up at the same time. The runtime guarantees that all woken threads complete their readMVar operation.
Compatibility note: Prior to base 4.7, readMVar was a combination of takeMVar and putMVar. This mean that in the presence of other threads attempting to putMVar, readMVar could block. Furthermore, readMVar would not receive the next putMVar if there was already a pending thread blocked on takeMVar. The old behavior can be recovered by implementing 'readMVar as follows:
readMVar :: MVar a -> IO a
readMVar m =
mask_ $ do
a <- takeMVar m
putMVar m a
return a
Return the contents of the MVar. If the MVar is currently empty, takeMVar will wait until it is full. After a takeMVar, the MVar is left empty.
There are two further important properties of takeMVar:
takeMVar is single-wakeup. That is, if there are multiple threads blocked in takeMVar, and the MVar becomes full, only one thread will be woken up. The runtime guarantees that the woken thread completes its takeMVar operation.
When multiple threads are blocked on an MVar, they are woken up in FIFO order. This is useful for providing fairness properties of abstractions built using MVars.
A non-blocking version of putMVar. The tryPutMVar function
attempts to put the value a into the MVar, returning True if
it was successful, or False otherwise.
A non-blocking version of takeMVar. The tryTakeMVar function
returns immediately, with Nothing if the MVar was empty, or
Just a if the MVar was full with contents a. After tryTakeMVar,
the MVar is left empty.
Read a string representation of a character, using Haskell source-language escape conventions. For example:
lexLitChar "\\nHello" = [("\\n", "Hello")]Read a string representation of a character, using Haskell source-language escape conventions, and convert it to the character that it encodes. For example:
readLitChar "\\nHello" = [('\n', "Hello")]Forms the ratio of two integral numbers.
raise a number to a non-negative integral power
raise a number to an integral power
Extract the denominator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.
General coercion from Integral types.
WARNING: This function performs silent truncation if the result type is not at least as big as the argument's type.
gcd x y is the non-negative factor of both x and y of which
every common factor of x and y is also a factor; for example
gcd 4 2 = 2, gcd (-4) 6 = 2, gcd 0 4 = 4. gcd 0 0 = 0.
(That is, the common divisor that is "greatest" in the divisibility
preordering.)
Note: Since for signed fixed-width integer types, abs minBound < 0,
the result may be negative if one of the arguments is minBound (and
necessarily is if the other is 0 or minBound) for such types.
lcm x y is the smallest positive integer that both x and y divide.
Extract the numerator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.
General coercion to Fractional types.
WARNING: This function goes through the Rational type, which does not have values for NaN for example.
This means it does not round-trip.
For Double it also behaves differently with or without -O0:
Prelude> realToFrac nan -- With -O0
-Infinity
Prelude> realToFrac nan
NaNreduce is a subsidiary function used only in this module. It normalises a ratio by dividing both numerator and denominator by their greatest common divisor.
showSigned Converts a possibly-negative Real value to a string.
Convert a character to a string using only printable characters, using Haskell source-language escape conventions. For example:
showLitChar '\n' s = "\\n" ++ sPop the most recent call-site off the CallStack.
This function, like pushCallStack, has no effect on a frozen CallStack.
Pretty print a CallStack.
Pretty print a SrcLoc.
Perform some computation without adding new entries to the CallStack.
Get the label of a CostCentre.
Get the module of a CostCentre.
Get the source span of a CostCentre.
Get the CostCentre at the head of a CostCentreStack.
Get the tail of a CostCentreStack.
Format a CostCentreStack as a list of lines.
Run a computation with an empty cost-center stack. For example, this is used by the interpreter to run an interpreted computation without the call stack showing that it was invoked from GHC.
Returns a [String] representing the current call stack. This
can be useful for debugging.
The implementation uses the call-stack simulation maintained by the
profiler, so it only works if the program was compiled with -prof
and contains suitable SCC annotations (e.g. by using -fprof-auto).
Otherwise, the list returned is likely to be empty or
uninformative.
Get the CostCentreStack associated with the given value.
Returns the current CostCentreStack (value is nullPtr if the current
program was not compiled with profiling support). Takes a dummy argument
which can be used to avoid the call to getCurrentCCS being floated out by
the simplifier, which would result in an uninformative stack (CAF).
Get the stack trace attached to an object.
The empty CallStack.
Freeze a call-stack, preventing any further call-sites from being appended.
pushCallStack callSite (freezeCallStack callStack) = freezeCallStack callStackConvert a list of call-sites to a CallStack.
Extract a list of call-sites from the CallStack.
The list is ordered by most recent call.
Push a call-site onto the stack.
This function has no effect on a frozen CallStack.
The computation exitFailure is equivalent to
exitWith (ExitFailure exitfail),
where exitfail is implementation-dependent.
The computation exitSuccess is equivalent to exitWith ExitSuccess, It terminates the program successfully.
Computation exitWith code throws ExitCode code.
Normally this terminates the program, returning code to the
program's caller.
On program termination, the standard Handles stdout and stderr are flushed automatically; any other buffered Handles need to be flushed manually, otherwise the buffered data will be discarded.
A program that fails in any other way is treated as if it had called exitFailure. A program that terminates successfully without calling exitWith explicitly is treated as if it had called exitWith ExitSuccess.
As an ExitCode is an Exception, it can be caught using the functions of Control.Exception. This means that cleanup computations added with bracket (from Control.Exception) are also executed properly on exitWith.
Note: in GHC, exitWith should be called from the main program thread in order to exit the process. When called from another thread, exitWith will throw an ExitCode as normal, but the exception will not cause the process itself to exit.
Convert an integer into an unknown type-level natural.
Convert a string into an unknown type-level symbol.
The Unicode general category of the character. This relies on the Enum instance of GeneralCategory, which must remain in the same order as the categories are presented in the Unicode standard.
Examples
Basic usage:
generalCategory 'a'LowercaseLettergeneralCategory 'A'UppercaseLettergeneralCategory '0'DecimalNumbergeneralCategory '%'OtherPunctuationgeneralCategory '♥'OtherSymbolgeneralCategory '\31'ControlgeneralCategory ' 'Space
Selects alphabetic Unicode characters (lower-case, upper-case and title-case letters, plus letters of caseless scripts and modifiers letters). This function is equivalent to isLetter.
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
These classes are defined in the Unicode Character Database, part of the Unicode standard. The same document defines what is and is not a "Letter".
Selects alphabetic or numeric Unicode characters.
Note that numeric digits outside the ASCII range, as well as numeric
characters which aren't digits, are selected by this function but not by
isDigit. Such characters may be part of identifiers but are not used by
the printer and reader to represent numbers, e.g., Roman numerals like ,
full-width digits like V'1' (aka '65297').
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
Selects the first 128 characters of the Unicode character set, corresponding to the ASCII character set.
Selects control characters, which are the non-printing characters of the Latin-1 subset of Unicode.
Selects ASCII digits, i.e. '0'..'9'.
Selects ASCII hexadecimal digits,
i.e. '0'..'9', 'a'..'f', 'A'..'F'.
Selects the first 256 characters of the Unicode character set, corresponding to the ISO 8859-1 (Latin-1) character set.
Selects lower-case alphabetic Unicode characters (letters).
Note: this predicate does not work for letter-like characters such as:
'ⓐ' (U+24D0 circled Latin small letter a) and
'ⅳ' (U+2173 small Roman numeral four). This is due to selecting only
characters with the GeneralCategory LowercaseLetter.
See isLowerCase for a more intuitive predicate.
Selects lower-case Unicode letter-like characters.
Note: this predicate selects characters with the Unicode property
Lowercase, which includes letter-like characters such as:
'ⓐ' (U+24D0 circled Latin small letter a) and
'ⅳ' (U+2173 small Roman numeral four).
See isLower for the legacy predicate.
Selects ASCII octal digits, i.e. '0'..'7'.
Selects printable Unicode characters (letters, numbers, marks, punctuation, symbols and spaces).
This function returns False if its argument has one of the following GeneralCategorys, or True otherwise:
Selects Unicode punctuation characters, including various kinds of connectors, brackets and quotes.
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
These classes are defined in the Unicode Character Database, part of the Unicode standard. The same document defines what is and is not a "Punctuation".
Examples
Basic usage:
isPunctuation 'a'FalseisPunctuation '7'FalseisPunctuation '♥'FalseisPunctuation '"'TrueisPunctuation '?'TrueisPunctuation '—'True
Returns True for any Unicode space character, and the control
characters \t, \n, \r, \f, \v.
Selects Unicode symbol characters, including mathematical and currency symbols.
This function returns True if its argument has one of the following GeneralCategorys, or False otherwise:
These classes are defined in the Unicode Character Database, part of the Unicode standard. The same document defines what is and is not a "Symbol".
Examples
Basic usage:
isSymbol 'a'FalseisSymbol '6'FalseisSymbol '='True
The definition of "math symbol" may be a little counter-intuitive depending on one's background:
isSymbol '+'TrueisSymbol '-'False
Selects upper-case or title-case alphabetic Unicode characters (letters). Title case is used by a small number of letter ligatures like the single-character form of Lj.
Note: this predicate does not work for letter-like characters such as:
'Ⓐ' (U+24B6 circled Latin capital letter A) and
'Ⅳ' (U+2163 Roman numeral four). This is due to selecting only
characters with the GeneralCategory UppercaseLetter or TitlecaseLetter.
See isUpperCase for a more intuitive predicate. Note that
unlike isUpperCase, isUpper does select title-case characters such as
'Dž' (U+01C5 Latin capital letter d with small letter z with caron) or
'ᾯ' (U+1FAF Greek capital letter omega with dasia and perispomeni and
prosgegrammeni).
Selects upper-case Unicode letter-like characters.
Note: this predicate selects characters with the Unicode property
Uppercase, which include letter-like characters such as:
'Ⓐ' (U+24B6 circled Latin capital letter A) and
'Ⅳ' (U+2163 Roman numeral four).
See isUpper for the legacy predicate. Note that
unlike isUpperCase, isUpper does select title-case characters such as
'Dž' (U+01C5 Latin capital letter d with small letter z with caron) or
'ᾯ' (U+1FAF Greek capital letter omega with dasia and perispomeni and
prosgegrammeni).
Convert a letter to the corresponding lower-case letter, if any. Any other character is returned unchanged.
Convert a letter to the corresponding title-case or upper-case letter, if any. (Title case differs from upper case only for a small number of ligature letters.) Any other character is returned unchanged.
Convert a letter to the corresponding upper-case letter, if any. Any other character is returned unchanged.
Retrieves a function of the current environment.
Gets specific component of the state, using a projection function supplied.
Monadic state transformer.
Maps an old state to a new state inside a state monad. The old state is thrown away.
Main> :t modify ((+1) :: Int -> Int)
modify (...) :: (MonadState Int a) => a ()This says that modify (+1) acts over any
Monad that is a member of the MonadState class,
with an Int state.
Check that the boolean condition is true and, if not, retry.
In other words, check b = unless b retry.
O(n) Joins lines, after appending a terminating newline to each.
O(n) Joins words using single space characters.
Decode a ByteString containing UTF-8 encoded text that is known to be valid.
If the input contains any invalid UTF-8 data, an exception will be thrown that cannot be caught in pure code. For more control over the handling of invalid data, use decodeUtf8' or decodeUtf8With.
This is a partial function: it checks that input is a well-formed UTF-8 sequence and copies buffer or throws an error otherwise.
Encode text using UTF-8 encoding.
Ignore an invalid input, substituting nothing in the output.
Replace an invalid input byte with the Unicode replacement character U+FFFD.
Replace an invalid input with a valid output.
Throw a UnicodeException if decoding fails.
catchE Map the unwrapped computation using the given function.
runExceptT (mapExceptT f m) = f (runExceptT m)
Extractor for computations in the exception monad. (The inverse of except).
The inverse of ExceptT.
Transform any exceptions thrown by the computation using the given function (a specialization of withExceptT).
Transform any exceptions thrown by the computation using the given function.
Runs a Reader and extracts the final value from it.
(The inverse of reader.)
Evaluate a state computation with the given initial state and return the final value, discarding the final state.
evalStateT m s = liftM fst (runStateT m s)
Evaluate a state computation with the given initial state and return the final state, discarding the final value.
execStateT m s = liftM snd (runStateT m s)
runState :: State s astate-passing computation to execute
-> sinitial state
-> (a, s)return value and final state
Unwrap a state monad computation as a function. (The inverse of state.)
Instances4Functor, Eq, Ord, Hashable
A value of type Concurrently a is an IO operation that can be
composed with other Concurrently values, using the Applicative
and Alternative instances.
Calling runConcurrently on a value of type Concurrently a will
execute the IO operations it contains concurrently, before
delivering the result of type a.
For example
(page1, page2, page3)
<- runConcurrently $ (,,)
<$> Concurrently (getURL "url1")
<*> Concurrently (getURL "url2")
<*> Concurrently (getURL "url3")Constructors
Instances5Functor, Applicative, Alternative, Semigroup, Monoid
Functor ConcurrentlyDefined in async-2.2.6 · Control.Concurrent.Async.InternalApplicative ConcurrentlyDefined in async-2.2.6 · Control.Concurrent.Async.InternalAlternative ConcurrentlyDefined in async-2.2.6 · Control.Concurrent.Async.InternalControl.Alternative.emptywaits forever.Control.Alternative.<|>returns the first to finish and cancels the other.Semigroup a => Semigroup (Concurrently a)Defined in async-2.2.6 · Control.Concurrent.Async.InternalOnly defined by
asyncforbase >= 4.9(Semigroup a, Monoid a) => Monoid (Concurrently a)Defined in async-2.2.6 · Control.Concurrent.Async.Internal
A bifunctor is a type constructor that takes two type arguments and is a functor in both arguments. That is, unlike with Functor, a type constructor such as Either does not need to be partially applied for a Bifunctor instance, and the methods in this class permit mapping functions over the Left value or the Right value, or both at the same time.
Formally, the class Bifunctor represents a bifunctor
from Hask -> Hask.
Intuitively it is a bifunctor where both the first and second arguments are covariant.
The class definition of a Bifunctor p uses the
QuantifiedConstraints
language extension to quantify over the first type
argument a in its context. The context requires that p a
must be a Functor for all a. In other words a partially
applied Bifunctor must be a Functor. This makes Functor a
superclass of Bifunctor such that a function with a
Bifunctor constraint may use fmap in its implementation.
Functor has been a quantified superclass of
Bifunctor since base-4.18.0.0.
You can define a Bifunctor by either defining bimap or by defining both first and second. The second method must agree with fmap:
second ≡ fmapFrom this it follows that:
second id ≡ idIf you supply bimap, you should ensure that:
bimap id id ≡ idIf you supply first and second, ensure:
first id ≡ id
second id ≡ id
If you supply both, you should also ensure:
bimap f g ≡ first f . second gThese ensure by parametricity:
bimap (f . g) (h . i) ≡ bimap f h . bimap g i
first (f . g) ≡ first f . first g
second (f . g) ≡ second f . second g
Methods
Instances29Bifunctor, …
Bifunctor TkArrayDefined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensBifunctor TkRecordDefined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensBifunctor TokensDefined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensBifunctor ConcurrentlyEDefined in async-2.2.6 · Control.Concurrent.Async.InternalBifunctor ArgDefined in base-4.22.0.0 · Data.SemigroupBifunctor EitherDefined in base-4.22.0.0 · Data.BifunctorBifunctor Tuple2Defined in base-4.22.0.0 · Data.BifunctorClass laws for tuples hold only up to laziness. Both first id and second id are lazier than id (and fmap id):
Example3 expressions first id (undefined :: (Int, Word)) `seq` ()()second id (undefined :: (Int, Word)) `seq` ()()id (errorWithoutStackTrace "error!" :: (Int, Word)) `seq` ()*** Exception: error!
Bifunctor EitherDefined in strict-0.5.1 · Data.Strict.EitherBifunctor TheseDefined in strict-0.5.1 · Data.Strict.TheseBifunctor PairDefined in strict-0.5.1 · Data.Strict.TupleBifunctor TheseDefined in these-1.2.1 · Data.TheseBifunctor ConstDefined in base-4.22.0.0 · Data.BifunctorBifunctor TaggedDefined in tagged-0.8.11 · Data.TaggedBifunctor ConstantDefined in transformers-0.6.1.2 · Data.Functor.ConstantBifunctor (Tuple3 x1)Defined in base-4.22.0.0 · Data.BifunctorBifunctor bi => Bifunctor (Biap bi)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapBifunctor (K1 i)Defined in base-4.22.0.0 · Data.BifunctorBifunctor (Tuple4 x1 x2)Defined in base-4.22.0.0 · Data.BifunctorBifunctor (Tuple5 x1 x2 x3)Defined in base-4.22.0.0 · Data.BifunctorBifunctor p => Bifunctor (Flip p)Defined in bifunctors-5.6.3 · Data.Bifunctor.FlipBifunctor p => Bifunctor (WrappedBifunctor p)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedFunctor f => Bifunctor (Clown f)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownFunctor g => Bifunctor (Joker g)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerBifunctor (Tuple6 x1 x2 x3 x4)Defined in base-4.22.0.0 · Data.Bifunctor(Bifunctor f, Bifunctor g) => Bifunctor (Product f g)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Bifunctor p, Bifunctor q) => Bifunctor (Sum p q)Defined in bifunctors-5.6.3 · Data.Bifunctor.SumBifunctor (Tuple7 x1 x2 x3 x4 x5)Defined in base-4.22.0.0 · Data.Bifunctor(Functor f, Bifunctor p) => Bifunctor (Tannen f p)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Bifunctor p, Functor f, Functor g) => Bifunctor (Biff p f g)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff
A space-efficient representation of a Word8 vector, supporting many efficient operations.
A ByteString contains 8-bit bytes, or by using the operations from Data.ByteString.Char8 it can be interpreted as containing 8-bit characters.
Instances27IsList, Eq, Data, Ord, Read, Show, …
IsList ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeEq ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeData ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeOrd ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeRead ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeShow ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeIsString ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeBeware: fromString truncates multi-byte characters to octets. e.g. "枯朶に烏のとまりけり秋の暮" becomes �6k�nh~�Q��n�
Semigroup ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeMonoid ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeNFData ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeBinary ByteStringDefined in binary-0.8.9.3 · Data.Binary.ClassHashable ByteStringDefined in hashable-1.5.1.0 · Data.Hashable.ClassToByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyText ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToText ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextPrint ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ShowLift ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeStrict ByteString ByteStringDefined in strict-0.5.1 · Data.Strict.ClassesConvertable Double ByteStringDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Float ByteStringDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertText ByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText ByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText ByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextMonad m => Stream ByteString m CharDefined in parsec-3.1.18.0 · Text.Parsec.Primtype Item ByteString = Word8Defined in bytestring-0.12.2.0 · Data.ByteString.Internal.Type
Convert from one Unicode textual type to another. Not for serialization/deserialization, so doesn't have instances for bytestrings.
Methods
toS :: a -> b
Instances13ConvertText, …
ConvertText ByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText ByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText ByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText ByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText String StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText String TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText String TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertText
Methods
toBS :: a -> ByteString
Instances5ToByteString
ToByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToByteString StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToByteString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToByteString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertText
Methods
toLBS :: a -> ByteString
Instances5ToLazyByteString
ToLazyByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyByteString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyByteString StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyByteString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyByteString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertText
Methods
toLazyText :: a -> Text
Instances5ToLazyText
ToLazyText ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyText ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyText StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyText TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyText TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertText
Instances5ToString
ToString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToString ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToString StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertText
Instances5ToText
ToText ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToText ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToText StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToText TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToText TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertText
Instances2Eq, Show
Eq CountFailureDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.SizeShow CountFailureDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.Size
Should we perform a GC call before counting the size?
Constructors
FirstPerformGCYes, first perform GC before counting
This should be used for most accurate results. Without calling GC first, the computed size might be larger than expected due to leftover indirections (black holes, selector thunks, etc.)
DontPerformGCNo, do not perform GC before counting
If pinpoint accuracy is not requried, then GC can be skipped, making the call much less expensive.
Constructors
ClosureTreeOptionsctoMaxDepth :: !TreeDepthConstruct a closure tree given a maximum depth.
ctoCyclicClosures :: !TraverseCyclicClosuresWhether to traverse cyclic closures while constructing a closure tree.
Instances1Show
Show ClosureTreeOptionsDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.Tree
Constructors
TraverseCyclicClosuresTraverse cyclic closures.
NoTraverseCyclicClosuresDo not traverse cyclic closures.
Instances1Show
Show TraverseCyclicClosuresDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.Tree
The depth of a Tree.
Constructors
SchemaErrorseExpected :: !TextseActual :: !Maybe Text
Instances3Eq, Show, Buildable
Eq SchemaErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.CanonicalShow SchemaErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.CanonicalBuildable SchemaErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical
Uncatchable exceptions thrown and never caught.
Constructors
Instances2Show, Exception
Show FatalErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.PanicException FatalErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Panic
Instances5Print
Print ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ShowPrint ByteStringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ShowPrint TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ShowPrint TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ShowPrint [Char]Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Show
A Map from keys k to values a.
Instances56Bifoldable, Eq2, Ord2, Show2, NFData2, Hashable2, …
Bifoldable MapDefined in containers-0.8 · Data.Map.InternalEq2 MapDefined in containers-0.8 · Data.Map.InternalOrd2 MapDefined in containers-0.8 · Data.Map.InternalShow2 MapDefined in containers-0.8 · Data.Map.InternalNFData2 MapDefined in containers-0.8 · Data.Map.InternalHashable2 MapDefined in hashable-1.5.1.0 · Data.Hashable.ClassFoldableWithIndex k (Map k)Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex k (Map k)Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex k (Map k)Defined in indexed-traversable-0.1.5 · WithIndexOrd k => SemialignWithIndex k (Map k)Defined in semialign-1.4 · Data.Semialign.InternalOrd k => ZipWithIndex k (Map k)Defined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex k (Map k)Defined in witherable-0.5 · WitherableWitherableWithIndex k (Map k)Defined in witherable-0.5 · Witherable(Lift k, Lift a) => Lift (Map k a)Defined in containers-0.8 · Data.Map.Internal(ReportSchemaErrors m, Ord k, FromObjectKey m k, FromJSON m a) => FromJSON m (Map k a)Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.Class(Monad m, ToObjectKey m k, ToJSON m a) => ToJSON m (Map k a)Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.ClassFunctor (Map k)Defined in containers-0.8 · Data.Map.InternalFoldable (Map k)Defined in containers-0.8 · Data.Map.InternalFolds in order of increasing key.
Traversable (Map k)Defined in containers-0.8 · Data.Map.InternalTraverses in order of increasing key.
Eq k => Eq1 (Map k)Defined in containers-0.8 · Data.Map.InternalOrd k => Ord1 (Map k)Defined in containers-0.8 · Data.Map.Internal(Ord k, Read k) => Read1 (Map k)Defined in containers-0.8 · Data.Map.InternalShow k => Show1 (Map k)Defined in containers-0.8 · Data.Map.InternalNFData k => NFData1 (Map k)Defined in containers-0.8 · Data.Map.Internal(Ord k, Arbitrary k) => Arbitrary1 (Map k)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable k => Hashable1 (Map k)Defined in hashable-1.5.1.0 · Data.Hashable.ClassOrd k => Alt (Map k)Defined in semigroupoids-6.0.2 · Data.Functor.AltOrd k => Apply (Map k)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassA 'Map k' is not Applicative, but it is an instance of Apply
Ord k => Bind (Map k)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassOrd k => Plus (Map k)Defined in semigroupoids-6.0.2 · Data.Functor.PlusOrd k => Align (Map k)Defined in semialign-1.4 · Data.Semialign.InternalOrd k => Semialign (Map k)Defined in semialign-1.4 · Data.Semialign.InternalOrd k => Unalign (Map k)Defined in semialign-1.4 · Data.Semialign.InternalOrd k => Unzip (Map k)Defined in semialign-1.4 · Data.Semialign.InternalOrd k => Zip (Map k)Defined in semialign-1.4 · Data.Semialign.InternalFilterable (Map k)Defined in witherable-0.5 · WitherableWitherable (Map k)Defined in witherable-0.5 · Witherable(FromJSONKey k, Ord k) => FromJSON1 (Map k)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSONKey k => ToJSON1 (Map k)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONOrd k => IsList (Map k v)Defined in containers-0.8 · Data.Map.Internal(Eq k, Eq a) => Eq (Map k a)Defined in containers-0.8 · Data.Map.Internal(Data k, Data a, Ord k) => Data (Map k a)Defined in containers-0.8 · Data.Map.Internal(Ord k, Ord v) => Ord (Map k v)Defined in containers-0.8 · Data.Map.Internal(Ord k, Read k, Read e) => Read (Map k e)Defined in containers-0.8 · Data.Map.Internal(Show k, Show a) => Show (Map k a)Defined in containers-0.8 · Data.Map.InternalOrd k => Semigroup (Map k v)Defined in containers-0.8 · Data.Map.Internal(<>)= unionOrd k => Monoid (Map k v)Defined in containers-0.8 · Data.Map.Internalmempty= empty(NFData k, NFData a) => NFData (Map k a)Defined in containers-0.8 · Data.Map.Internal(Binary k, Binary e) => Binary (Map k e)Defined in binary-0.8.9.3 · Data.Binary.Class(Ord k, Arbitrary k, Arbitrary v) => Arbitrary (Map k v)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryWARNING: The same warning as for
Arbitrary (Set a)applies here.(CoArbitrary k, CoArbitrary v) => CoArbitrary (Map k v)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(Ord a, Function a, Function b) => Function (Map a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function(Hashable k, Hashable v) => Hashable (Map k v)Defined in hashable-1.5.1.0 · Data.Hashable.Class(FromJSONKey k, Ord k, FromJSON v) => FromJSON (Map k v)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(ToJSON v, ToJSONKey k) => ToJSON (Map k v)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Item (Map k v) = (k, v)Defined in containers-0.8 · Data.Map.Internal
General-purpose finite sequences.
Instances57Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad SeqDefined in containers-0.8 · Data.Sequence.InternalFunctor SeqDefined in containers-0.8 · Data.Sequence.InternalMonadFix SeqDefined in containers-0.8 · Data.Sequence.InternalApplicative SeqDefined in containers-0.8 · Data.Sequence.InternalFoldable SeqDefined in containers-0.8 · Data.Sequence.InternalTraversable SeqDefined in containers-0.8 · Data.Sequence.InternalAlternative SeqDefined in containers-0.8 · Data.Sequence.InternalMonadPlus SeqDefined in containers-0.8 · Data.Sequence.InternalMonadZip SeqDefined in containers-0.8 · Data.Sequence.InternalEq1 SeqDefined in containers-0.8 · Data.Sequence.InternalOrd1 SeqDefined in containers-0.8 · Data.Sequence.InternalRead1 SeqDefined in containers-0.8 · Data.Sequence.InternalShow1 SeqDefined in containers-0.8 · Data.Sequence.InternalNFData1 SeqDefined in containers-0.8 · Data.Sequence.InternalUnzipWith SeqDefined in containers-0.8 · Data.Sequence.InternalArbitrary1 SeqDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable1 SeqDefined in hashable-1.5.1.0 · Data.Hashable.ClassAlt SeqDefined in semigroupoids-6.0.2 · Data.Functor.AltApply SeqDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind SeqDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend SeqDefined in semigroupoids-6.0.2 · Data.Functor.ExtendPlus SeqDefined in semigroupoids-6.0.2 · Data.Functor.PlusAlign SeqDefined in semialign-1.4 · Data.Semialign.InternalSemialign SeqDefined in semialign-1.4 · Data.Semialign.InternalCrosswalk SeqDefined in semialign-1.4 · Data.CrosswalkUnzip SeqDefined in semialign-1.4 · Data.Semialign.InternalZip SeqDefined in semialign-1.4 · Data.Semialign.InternalFilterable SeqDefined in witherable-0.5 · WitherableWitherable SeqDefined in witherable-0.5 · WitherableFromJSON1 SeqDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 SeqDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONFoldableWithIndex Int SeqDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Int SeqDefined in indexed-traversable-0.1.5 · WithIndexThe position in the Seq is available as the index.
TraversableWithIndex Int SeqDefined in indexed-traversable-0.1.5 · WithIndexSemialignWithIndex Int SeqDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int SeqDefined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex Int SeqDefined in witherable-0.5 · WitherableWitherableWithIndex Int SeqDefined in witherable-0.5 · WitherableLift a => Lift (Seq a)Defined in containers-0.8 · Data.Sequence.InternalIsList (Seq a)Defined in containers-0.8 · Data.Sequence.InternalEq a => Eq (Seq a)Defined in containers-0.8 · Data.Sequence.InternalData a => Data (Seq a)Defined in containers-0.8 · Data.Sequence.InternalOrd a => Ord (Seq a)Defined in containers-0.8 · Data.Sequence.InternalRead a => Read (Seq a)Defined in containers-0.8 · Data.Sequence.InternalShow a => Show (Seq a)Defined in containers-0.8 · Data.Sequence.Internala ~ Char => IsString (Seq a)Defined in containers-0.8 · Data.Sequence.InternalSemigroup (Seq a)Defined in containers-0.8 · Data.Sequence.Internal(<>)=(><)Monoid (Seq a)Defined in containers-0.8 · Data.Sequence.Internalmempty= emptyNFData a => NFData (Seq a)Defined in containers-0.8 · Data.Sequence.InternalBinary e => Binary (Seq e)Defined in binary-0.8.9.3 · Data.Binary.ClassArbitrary a => Arbitrary (Seq a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryWARNING: The same warning as for
Arbitrary (Set a)applies here.CoArbitrary a => CoArbitrary (Seq a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Seq a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable v => Hashable (Seq v)Defined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON a => FromJSON (Seq a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Seq a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Item (Seq a) = aDefined in containers-0.8 · Data.Sequence.Internal
A set of values a.
Instances25Foldable, Eq1, Ord1, Show1, NFData1, Hashable1, …
Foldable SetDefined in containers-0.8 · Data.Set.InternalFolds in order of increasing key.
Eq1 SetDefined in containers-0.8 · Data.Set.InternalOrd1 SetDefined in containers-0.8 · Data.Set.InternalShow1 SetDefined in containers-0.8 · Data.Set.InternalNFData1 SetDefined in containers-0.8 · Data.Set.InternalHashable1 SetDefined in hashable-1.5.1.0 · Data.Hashable.ClassToJSON1 SetDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONLift a => Lift (Set a)Defined in containers-0.8 · Data.Set.InternalOrd a => IsList (Set a)Defined in containers-0.8 · Data.Set.InternalEq a => Eq (Set a)Defined in containers-0.8 · Data.Set.Internal(Data a, Ord a) => Data (Set a)Defined in containers-0.8 · Data.Set.InternalOrd a => Ord (Set a)Defined in containers-0.8 · Data.Set.Internal(Read a, Ord a) => Read (Set a)Defined in containers-0.8 · Data.Set.InternalShow a => Show (Set a)Defined in containers-0.8 · Data.Set.InternalOrd a => Semigroup (Set a)Defined in containers-0.8 · Data.Set.Internal(<>)= unionOrd a => Monoid (Set a)Defined in containers-0.8 · Data.Set.Internalmempty= emptyNFData a => NFData (Set a)Defined in containers-0.8 · Data.Set.InternalBinary a => Binary (Set a)Defined in binary-0.8.9.3 · Data.Binary.Class(Ord a, Arbitrary a) => Arbitrary (Set a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryWARNING: Users working on the internals of the
Settype via e.g.Data.Set.Internalshould be aware that this instance aims to give a good representation ofSet aas mathematical sets but *does not* aim to provide a varied distribution over the underlying representation.CoArbitrary a => CoArbitrary (Set a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(Ord a, Function a) => Function (Set a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable v => Hashable (Set v)Defined in hashable-1.5.1.0 · Data.Hashable.Class(Ord a, FromJSON a) => FromJSON (Set a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Set a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Item (Set a) = aDefined in containers-0.8 · Data.Set.Internal
A class of types that can be fully evaluated.
Methods
rnf :: a -> ()rnf should reduce its argument to normal form (that is, fully evaluate all sub-components), and then return
().Generic NFData deriving
Starting with GHC 7.2, you can automatically derive instances for types possessing a Generic instance.
Note: Generic1 can be auto-derived starting with GHC 7.4
{-# LANGUAGE DeriveGeneric #-} import GHC.Generics (Generic, Generic1) import Control.DeepSeq data Foo a = Foo a String deriving (Eq, Generic, Generic1) instance NFData a => NFData (Foo a) instance NFData1 Foo data Colour = Red | Green | Blue deriving Generic instance NFData ColourStarting with GHC 7.10, the example above can be written more concisely by enabling the new
DeriveAnyClassextension:{-# LANGUAGE DeriveGeneric, DeriveAnyClass #-} import GHC.Generics (Generic) import Control.DeepSeq data Foo a = Foo a String deriving (Eq, Generic, Generic1, NFData, NFData1) data Colour = Red | Green | Blue deriving (Generic, NFData)Compatibility with previous
deepseqversionsPrior to version 1.4.0.0, the default implementation of the rnf method was defined as
rnf a = seq a ()However, starting with
deepseq-1.4.0.0, the default implementation is based onDefaultSignaturesallowing for more accurate auto-derived NFData instances. If you need the previously used exact default rnf method implementation semantics, useinstance NFData Colour where rnf x = seq x ()or alternatively
instance NFData Colour where rnf = rwhnfor
{-# LANGUAGE BangPatterns #-} instance NFData Colour where rnf !_ = ()
Instances206NFData, …
NFData KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeyNFData JSONPathElementDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalNFData ValueDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalNFData ByteArrayDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData BufferDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalLike the
NFDatainstance forStrictByteString, this does not force theForeignPtrContentsfield of the underlyingForeignPtr.NFData BufferRangeDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalNFData ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeNFData ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalNFData ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalNFData JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesNFData JSValueDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesNFData DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadNFData IntSetDefined in containers-0.8 · Data.IntSet.InternalNFData VoidDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData IntegerDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData NaturalDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData ThreadIdDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData AllDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData AnyDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData TypeRepDefined in deepseq-1.5.1.0 · Control.DeepSeqNOTE: Prior to
deepseq-1.4.4.0this instance was only defined forbase-4.8.0.0and later.NFData UniqueDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData VersionDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData FingerprintDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CBoolDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CCharDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CClockDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CDoubleDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CFileDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CFloatDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CFposDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CIntDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CIntMaxDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CIntPtrDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CJmpBufDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CLLongDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CLongDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CPtrdiffDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CSCharDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CSUSecondsDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CShortDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CSigAtomicDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CSizeDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CTimeDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CUCharDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CUIntDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CUIntMaxDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CUIntPtrDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CULLongDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CULongDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CUSecondsDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CUShortDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CWcharDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData MaskingStateDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData ExitCodeDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData Int16Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData Int32Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData Int64Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData Int8Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData CallStackDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData SrcLocDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData BoolDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData CharDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData DoubleDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData FloatDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData IntDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData ModuleDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData OrderingDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData TyConDefined in deepseq-1.5.1.0 · Control.DeepSeqNOTE: Prior to
deepseq-1.4.4.0this instance was only defined forbase-4.8.0.0and later.NFData WordDefined in deepseq-1.5.1.0 · Control.DeepSeqNFData Word16Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData Word32Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData Word64Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData Word8Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData HalfDefined in half-0.3.3 · Numeric.Half.InternalNFData URIDefined in network-uri-2.6.4.2 · Network.URINFData URIAuthDefined in network-uri-2.6.4.2 · Network.URINFData EncodingExceptionDefined in os-string-2.0.8 · System.OsString.Encoding.InternalNFData OsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesNFData OsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesNFData PosixCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesNFData PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesNFData WindowsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesNFData WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesNFData TextDetailsDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJNFData DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJNFData StdGenDefined in random-1.3.1 · System.Random.InternalNFData ScientificDefined in scientific-0.3.9.0 · Data.ScientificNFData SMGenDefined in splitmix-0.1.3.2 · System.Random.SplitMixNFData SMGenDefined in splitmix-0.1.3.2 · System.Random.SplitMix32NFData UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorNFData TextDefined in text-2.1.3 · Data.Text · orphanNFData TextDefined in text-2.1.3 · Data.Text.Lazy · orphanNFData ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalNFData CalendarDiffDaysDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDaysNFData DayDefined in time-1.15 · Data.Time.Calendar.DaysNFData MonthDefined in time-1.15 · Data.Time.Calendar.MonthNFData QuarterDefined in time-1.15 · Data.Time.Calendar.QuarterNFData QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.QuarterNFData DayOfWeekDefined in time-1.15 · Data.Time.Calendar.WeekNFData AbsoluteTimeDefined in time-1.15 · Data.Time.Clock.Internal.AbsoluteTimeNFData DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeNFData NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeNFData SystemTimeDefined in time-1.15 · Data.Time.Clock.Internal.SystemTimeNFData UTCTimeDefined in time-1.15 · Data.Time.Clock.Internal.UTCTimeNFData UniversalTimeDefined in time-1.15 · Data.Time.Clock.Internal.UniversalTimeNFData CalendarDiffTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTimeNFData LocalTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.LocalTimeNFData TimeOfDayDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeOfDayNFData TimeZoneDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeZoneNFData ZonedTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.ZonedTimeNFData UUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalNFData ()Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (MutableByteArray s)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (IORef a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNOTE: Only strict in the reference and not the referenced value.
NFData (MVar a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNOTE: Only strict in the reference and not the referenced value.
NFData (FunPtr a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (Ptr a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (StableName a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayNFData (Vector a)Defined in vector-0.13.2.0 · Data.Vector.PrimitiveNFData (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StorableNFData (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseNFData a => NFData (IResult a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalNFData a => NFData (Result a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalNFData a => NFData (Complex a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (First a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Last a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Max a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Min a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (SCC a)Defined in containers-0.8 · Data.GraphNFData a => NFData (IntMap a)Defined in containers-0.8 · Data.IntMap.InternalNFData a => NFData (Digit a)Defined in containers-0.8 · Data.Sequence.InternalNFData a => NFData (Elem a)Defined in containers-0.8 · Data.Sequence.InternalNFData a => NFData (FingerTree a)Defined in containers-0.8 · Data.Sequence.InternalNFData a => NFData (Node a)Defined in containers-0.8 · Data.Sequence.InternalNFData a => NFData (Seq a)Defined in containers-0.8 · Data.Sequence.InternalNFData a => NFData (Set a)Defined in containers-0.8 · Data.Set.InternalNFData a => NFData (Tree a)Defined in containers-0.8 · Data.TreeNFData a => NFData (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalNFData a => NFData (DList a)Defined in dlist-1.0 · Data.DList.InternalNFData a => NFData (NonEmpty a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Identity a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (First a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Last a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Down a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Dual a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Product a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Sum a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (ZipList a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Maybe a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Ratio a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Hashed a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassNFData a => NFData (AnnotDetails a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJNFData a => NFData (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJNFData a => NFData (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayNFData a => NFData (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayNFData a => NFData (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeNFData a => NFData (Array a)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.ArrayNFData a => NFData (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalNFData a => NFData (Vector a)Defined in vector-0.13.2.0 · Data.VectorNFData a => NFData (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictNFData a => NFData (a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData [a]Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData g => NFData (StateGen g)Defined in random-1.3.1 · System.Random.InternalNFData g => NFData (AtomicGen g)Defined in random-1.3.1 · System.Random.StatefulNFData g => NFData (IOGen g)Defined in random-1.3.1 · System.Random.StatefulNFData g => NFData (STGen g)Defined in random-1.3.1 · System.Random.StatefulNFData g => NFData (TGen g)Defined in random-1.3.1 · System.Random.StatefulNFData m => NFData (WrappedMonoid m)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData v => NFData (KeyMap v)Defined in aeson-2.2.5.1 · Data.Aeson.KeyMapNFData1 f => NFData (Fix f)Defined in data-fix-0.3.4 · Data.FixNFData (Fixed a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (Proxy a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (TypeRep a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (STRef s a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNOTE: Only strict in the reference and not the referenced value.
NFData (MutablePrimArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayNFData (MVector s a)Defined in vector-0.13.2.0 · Data.Vector.Primitive.MutableNFData (MVector s a)Defined in vector-0.13.2.0 · Data.Vector.Storable.MutableNFData (MVector s a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseNFData (a -> b)Defined in deepseq-1.5.1.0 · Control.DeepSeqThis instance is for convenience and consistency with seq. This assumes that WHNF is equivalent to NF for functions.
(NFData a, NFData b) => NFData (Arg a b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData a, NFData b) => NFData (Array a b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData a, NFData b) => NFData (Either a b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData a, NFData b) => NFData (Either a b)Defined in strict-0.5.1 · Data.Strict.Either(NFData a, NFData b) => NFData (These a b)Defined in strict-0.5.1 · Data.Strict.These(NFData a, NFData b) => NFData (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(NFData a, NFData b) => NFData (These a b)Defined in these-1.2.1 · Data.These(NFData a, NFData b) => NFData (a, b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData k, NFData a) => NFData (Map k a)Defined in containers-0.8 · Data.Map.Internal(NFData k, NFData v) => NFData (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(NFData k, NFData v) => NFData (Leaf k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalNFData (a :~: b)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData a => NFData (Const a b)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData b => NFData (Tagged s b)Defined in tagged-0.8.11 · Data.Tagged(NFData (f a), NFData (g a), NFData a) => NFData (These1 f g a)Defined in these-1.2.1 · Data.Functor.TheseAvailable always
(NFData a1, NFData a2, NFData a3) => NFData (a1, a2, a3)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (a :~~: b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData (f a), NFData (g a)) => NFData (Product f g a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNote: in
deepseq-1.5.0.0this instance's superclasses were changed.(NFData (f a), NFData (g a)) => NFData (Sum f g a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNote: in
deepseq-1.5.0.0this instance's superclasses were changed.(NFData a1, NFData a2, NFData a3, NFData a4) => NFData (a1, a2, a3, a4)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData (f (g a)) => NFData (Compose f g a)Defined in deepseq-1.5.1.0 · Control.DeepSeqNote: in
deepseq-1.5.0.0this instance's superclasses were changed.(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5) => NFData (a1, a2, a3, a4, a5)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6) => NFData (a1, a2, a3, a4, a5, a6)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7) => NFData (a1, a2, a3, a4, a5, a6, a7)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8) => NFData (a1, a2, a3, a4, a5, a6, a7, a8)Defined in deepseq-1.5.1.0 · Control.DeepSeq(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8, NFData a9) => NFData (a1, a2, a3, a4, a5, a6, a7, a8, a9)Defined in deepseq-1.5.1.0 · Control.DeepSeq
A monoid on applicative functors.
If defined, some and many should be the least solutions of the equations:
Examples
Nothing <|> Just 42Just 42
[1, 2] <|> [3, 4][1,2,3,4]
empty <|> print (2^15)32768
Methods
empty :: f aThe identity of <|>
empty <|> a == a a <|> empty == a(<|>) :: f a -> f a -> f ainfixl 3An associative binary operation
some :: f a -> f [a]One or more.
Examples
Example1 expression some (putStr "la")lalalalalalalalala... * goes on forever *
Example1 expression some Nothingnothing
Example1 expression take 5 <$> some (Just 1)* hangs forever *
Note that this function can be used with Parsers based on Applicatives. In that case
some parserwill attempt to parseparserone or more times until it fails.many :: f a -> f [a]Zero or more.
Examples
Example1 expression many (putStr "la")lalalalalalalalala... * goes on forever *
Example1 expression many NothingJust []
Example1 expression take 5 <$> many (Just 1)* hangs forever *
Note that this function can be used with Parsers based on Applicatives. In that case
many parserwill attempt to parseparserzero or more times until it fails.
Instances56Alternative, …
Alternative IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalAlternative ParserDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalAlternative ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalAlternative ConcurrentlyDefined in async-2.2.6 · Control.Concurrent.Async.InternalControl.Alternative.emptywaits forever.Control.Alternative.<|>returns the first to finish and cancels the other.Alternative GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalAlternative SeqDefined in containers-0.8 · Data.Sequence.InternalAlternative DListDefined in dlist-1.0 · Data.DList.InternalAlternative STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncAlternative ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListAlternative MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseAlternative PDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPAlternative ReadPDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPAlternative ReadPrecDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPrecAlternative IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseAlternative ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayAlternative SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayAlternative VectorDefined in vector-0.13.2.0 · Data.VectorAlternative VectorDefined in vector-0.13.2.0 · Data.Vector.StrictAlternative []Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseCombines lists by concatenation, starting from the empty list.
Alternative ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyAlternative U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsAlternative f => Alternative (WrappedApplicative f)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassAlternative f => Alternative (Lift f)Defined in transformers-0.6.1.2 · Control.Applicative.LiftA combination is Pure only either part is.
Alternative f => Alternative (WrappedFoldable f)Defined in witherable-0.5 · WitherableMonad m => Alternative (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonadPlus m => Alternative (WrappedMonad m)Defined in base-4.22.0.0 · Control.ApplicativeArrowPlus a => Alternative (ArrowMonad a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Arrow(Functor m, Monad m) => Alternative (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeAlternative (bi a) => Alternative (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapAlternative f => Alternative (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidAlternative f => Alternative (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalAlternative f => Alternative (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsAlternative f => Alternative (Backwards f)Defined in transformers-0.6.1.2 · Control.Applicative.BackwardsTry alternatives in the same order as
f.Alternative f => Alternative (Reverse f)Defined in transformers-0.6.1.2 · Data.Functor.ReverseDerived instance.
Alternative m => Alternative (Kleisli m a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowAlternative m => Alternative (IdentityT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityAlternative m => Alternative (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Reader(Functor m, Monad m, Monoid e) => Alternative (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Functor m, MonadPlus m) => Alternative (SelectT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Select(Functor m, MonadPlus m) => Alternative (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.Lazy(Functor m, MonadPlus m) => Alternative (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.Strict(Functor m, MonadPlus m) => Alternative (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPS(Monoid w, Alternative m) => Alternative (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Monoid w, Alternative m) => Alternative (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Strict(Monoid w, Functor m, MonadPlus m) => Alternative (AccumT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Accum(ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b)Defined in base-4.22.0.0 · Control.Applicative(Generic1 f, Alternative (Rep1 f)) => Alternative (Generically1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsAlternative (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.Prim(Alternative f, Alternative g) => Alternative (Product f g)Defined in base-4.22.0.0 · Data.Functor.Product(Alternative f, Alternative g) => Alternative (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsAlternative f => Alternative (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Alternative f, Applicative g) => Alternative (Compose f g)Defined in base-4.22.0.0 · Data.Functor.Compose(Alternative f, Applicative g) => Alternative (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Functor m, MonadPlus m) => Alternative (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPS(Monoid w, Functor m, MonadPlus m) => Alternative (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Lazy(Monoid w, Functor m, MonadPlus m) => Alternative (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict
A functor with application, providing operations to
A minimal complete definition must include implementations of pure and of either <*> or liftA2. If it defines both, then they must behave the same as their default definitions:
(<*>) = liftA2 idliftA2 f x y = f Prelude.<$> x <*> yFurther, any definition must satisfy the following:
- Identity
pure id <*> v = v- Composition
pure (.) <*> u <*> v <*> w = u <*> (v <*> w)- Homomorphism
pure f <*> pure x = pure (f x)- Interchange
u <*> pure y = pure ($ y) <*> u
The other methods have the following default definitions, which may be overridden with equivalent specialized implementations:
As a consequence of these laws, the Functor instance for f will satisfy
It may be useful to note that supposing
forall x y. p (q x y) = f x . g yit follows from the above that
liftA2 p (liftA2 q u v) = liftA2 f u . liftA2 g vIf f is also a Monad, it should satisfy
(which implies that pure and <*> satisfy the applicative functor laws).
Methods
pure :: a -> f aLift a value into the Structure.
Examples
Example1 expression pure 1 :: Maybe IntJust 1
Example1 expression pure 'z' :: [Char]"z"
Example1 expression pure (pure ":D") :: Maybe [String]Just [":D"]
(<*>) :: f (a -> b) -> f a -> f binfixl 4Sequential application.
A few functors support an implementation of <*> that is more efficient than the default one.
Example
Used in combination with
,(Data.Functor.<$>)can be used to build a record.(<*>)Example1 expression data MyState = MyState {arg1 :: Foo, arg2 :: Bar, arg3 :: Baz}Example3 expressions produceFoo :: Applicative f => f FooproduceBar :: Applicative f => f BarproduceBaz :: Applicative f => f Baz
Example2 expressions mkState :: Applicative f => f MyStatemkState = MyState <$> produceFoo <*> produceBar <*> produceBaz
liftA2 :: (a -> b -> c) -> f a -> f b -> f cLift a binary function to actions.
Some functors support an implementation of liftA2 that is more efficient than the default one. In particular, if fmap is an expensive operation, it is likely better to use liftA2 than to fmap over the structure and then use <*>.
This became a typeclass method in 4.10.0.0. Prior to that, it was a function defined in terms of <*> and fmap.
Example
Example1 expression liftA2 (,) (Just 3) (Just 5)Just (3,5)
Example1 expression liftA2 (+) [1, 2, 3] [4, 5, 6][5,6,7,6,7,8,7,8,9]
(*>) :: f a -> f b -> f binfixl 4Sequence actions, discarding the value of the first argument.
Examples
If used in conjunction with the Applicative instance for Maybe, you can chain Maybe computations, with a possible "early return" in case of Nothing.
Example1 expression Just 2 *> Just 3Just 3
Example1 expression Nothing *> Just 3Nothing
Of course a more interesting use case would be to have effectful computations instead of just returning pure values.
Example4 expressions import Data.Charimport GHC.Internal.Text.ParserCombinators.ReadPlet p = string "my name is " *> munch1 isAlpha <* eofreadP_to_S p "my name is Simon"[("Simon","")]
(<*) :: f a -> f b -> f ainfixl 4Sequence actions, discarding the value of the second argument.
Instances127Applicative, …
Applicative GenDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.GenApplicative RoseDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PropertyApplicative IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalApplicative ParserDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalApplicative ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalApplicative ConcurrentlyDefined in async-2.2.6 · Control.Concurrent.Async.InternalApplicative ComplexDefined in base-4.22.0.0 · Data.ComplexApplicative FirstDefined in base-4.22.0.0 · Data.SemigroupApplicative LastDefined in base-4.22.0.0 · Data.SemigroupApplicative MaxDefined in base-4.22.0.0 · Data.SemigroupApplicative MinDefined in base-4.22.0.0 · Data.SemigroupApplicative GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalApplicative PutMDefined in binary-0.8.9.3 · Data.Binary.PutApplicative PutDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalApplicative PPDefined in cborg-0.2.10.0 · Codec.CBOR.PrettyApplicative SeqDefined in containers-0.8 · Data.Sequence.InternalApplicative TreeDefined in containers-0.8 · Data.TreeApplicative DNonEmptyDefined in dlist-1.0 · Data.DList.DNonEmpty.InternalApplicative DListDefined in dlist-1.0 · Data.DList.InternalApplicative PprMDefined in ghc-boot-th-9.14.1 · GHC.Boot.TH.PprLibApplicative NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanApplicative STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncApplicative IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityApplicative FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidApplicative LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidApplicative DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdApplicative DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalApplicative ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalApplicative SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalApplicative ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListf <$> ZipList xs1 <*> ... <*> ZipList xsN = ZipList (zipWithN f xs1 ... xsN)where
zipWithNrefers to thezipWithfunction of the appropriate arity (zipWith,zipWith3,zipWith4, ...). For example:(\a b c -> stimes c [a, b]) <$> ZipList "abcd" <*> ZipList "567" <*> ZipList [1..] = ZipList (zipWith3 (\a b c -> stimes c [a, b]) "abcd" "567" [1..]) = ZipList {getZipList = ["a5","b6b6","c7c7c7"]}Applicative NoIODefined in ghc-internal-9.1401.0 · GHC.Internal.GHCiApplicative Par1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsApplicative MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseApplicative QDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxApplicative PDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPApplicative ReadPDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPApplicative ReadPrecDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPrecApplicative SoloDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseApplicative IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseApplicative ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayApplicative SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayApplicative STMDefined in stm-2.5.3.1 · Control.Sequential.STMApplicative VectorDefined in vector-0.13.2.0 · Data.VectorApplicative IdDefined in vector-0.13.2.0 · Data.Vector.Fusion.UtilApplicative VectorDefined in vector-0.13.2.0 · Data.Vector.StrictApplicative BoxDefined in vector-stream-0.1.0.1 · Data.Stream.MonadicApplicative []Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseApplicative ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyApplicative U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsApplicative (PropertyM m)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonadicApplicative (ConcurrentlyE e)Defined in async-2.2.6 · Control.Concurrent.Async.InternalApplicative (Decoder s)Defined in cborg-0.2.10.0 · Codec.CBOR.DecodingApplicative (IncrementalDecoder s)Defined in cborg-0.2.10.0 · Codec.CBOR.ReadApplicative (State s)Defined in containers-0.8 · Utils.Containers.Internal.StateApplicative (ST s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpApplicative (Either e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherApplicative (StateL s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsApplicative (StateR s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsApplicative (ST s)Defined in ghc-internal-9.1401.0 · GHC.Internal.STApplicative (IParser t)Defined in text-2.1.3 · Data.Text.Internal.ReadApplicative f => Applicative (WrappedApplicative f)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassApplicative f => Applicative (Lift f)Defined in transformers-0.6.1.2 · Control.Applicative.LiftA combination is Pure only if both parts are.
Applicative f => Applicative (WrappedFoldable f)Defined in witherable-0.5 · WitherableApplicative m => Applicative (QuoteToQuasi m)Defined in th-compat-0.1.7 · Language.Haskell.TH.Syntax.CompatMonad m => Applicative (WrappedMonad m)Defined in base-4.22.0.0 · Control.ApplicativeMonad m => Applicative (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonoid a => Applicative (Tuple2 a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup a => Applicative (These a)Defined in strict-0.5.1 · Data.Strict.TheseSemigroup a => Applicative (These a)Defined in these-1.2.1 · Data.TheseArrow a => Applicative (ArrowMonad a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowRepeat f => Applicative (Zippy f)Defined in semialign-1.4 · Data.ZipApply f => Applicative (MaybeApply f)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.Class(Functor m, Monad m) => Applicative (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeBiapplicative p => Applicative (Fix p)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixBiapplicative p => Applicative (Join p)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinApplicative (Mag a b)Defined in bifunctors-5.6.3 · Data.BiapplicativeApplicative (Bazaar a b)Defined in microlens-0.4.14.0 · Lens.MicroApplicative (Tagged s)Defined in tagged-0.8.11 · Data.TaggedApplicative (bi a) => Applicative (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapApplicative (t m) => Applicative (LiftingAccum t m)Defined in mtl-2.3.1 · Control.Monad.AccumApplicative (t m) => Applicative (LiftingSelect t m)Defined in mtl-2.3.1 · Control.Monad.SelectApplicative f => Applicative (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidApplicative f => Applicative (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Applicative (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsApplicative f => Applicative (Indexing f)Defined in indexed-traversable-0.1.5 · WithIndexApplicative f => Applicative (Static f a)Defined in semigroupoids-6.0.2 · Data.Semigroupoid.StaticApplicative f => Applicative (Backwards f)Defined in transformers-0.6.1.2 · Control.Applicative.BackwardsApply
f-actions in the reverse order.Applicative f => Applicative (Reverse f)Defined in transformers-0.6.1.2 · Data.Functor.ReverseDerived instance.
Applicative m => Applicative (Kleisli m a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowApplicative m => Applicative (IdentityT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityApplicative m => Applicative (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderApplicative w => Applicative (TracedT m w)Defined in comonad-5.0.10 · Control.Comonad.Trans.TracedMonad m => Applicative (StateT s m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsMonoid a => Applicative (Constant a)Defined in transformers-0.6.1.2 · Data.Functor.ConstantMonoid m => Applicative (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstArrow a => Applicative (WrappedArrow a b)Defined in base-4.22.0.0 · Control.Applicative(Applicative f, Monad f) => Applicative (WhenMissing f x)Defined in containers-0.8 · Data.IntMap.InternalEquivalent to
ReaderT k (ReaderT x (MaybeT f)).(Applicative w, Monoid s) => Applicative (StoreT s w)Defined in comonad-5.0.10 · Control.Comonad.Trans.Store(Functor m, Monad m) => Applicative (StateT s m)Defined in microlens-0.4.14.0 · Lens.Micro(Functor m, Monad m) => Applicative (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Functor m, Monad m) => Applicative (SelectT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Select(Functor m, Monad m) => Applicative (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.Lazy(Functor m, Monad m) => Applicative (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.Strict(Functor m, Monad m) => Applicative (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPS(Monoid a, Monoid b) => Applicative (Tuple3 a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Monoid e, Applicative m) => Applicative (EnvT e m)Defined in comonad-5.0.10 · Control.Comonad.Trans.Env(Monoid w, Applicative m) => Applicative (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Monoid w, Applicative m) => Applicative (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Strict(Monoid w, Functor m, Monad m) => Applicative (AccumT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Accum(Generic1 f, Applicative (Rep1 f)) => Applicative (Generically1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsApplicative (Cokleisli w a)Defined in comonad-5.0.10 · Control.ComonadApplicative (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.PrimApplicative (ContT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ContApplicative ((->) r)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid c => Applicative (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Applicative f, Applicative g) => Applicative (Product f g)Defined in base-4.22.0.0 · Data.Functor.Product(Applicative f, Applicative g) => Applicative (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Applicative f, Monad f) => Applicative (WhenMissing f k x)Defined in containers-0.8 · Data.Map.InternalEquivalent to
ReaderT k (ReaderT x (MaybeT f)).(Monad f, Applicative f) => Applicative (WhenMatched f x y)Defined in containers-0.8 · Data.IntMap.InternalEquivalent to
ReaderT Key (ReaderT x (ReaderT y (MaybeT f)))(Monoid a, Monoid b, Monoid c) => Applicative (Tuple4 a b c)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseApplicative f => Applicative (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Applicative f, Applicative g) => Applicative (Compose f g)Defined in base-4.22.0.0 · Data.Functor.Compose(Applicative f, Applicative g) => Applicative (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Functor m, Monad m) => Applicative (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPS(Monad f, Applicative f) => Applicative (WhenMatched f k x y)Defined in containers-0.8 · Data.Map.InternalEquivalent to
ReaderT k (ReaderT x (ReaderT y (MaybeT f)))(Monoid w, Functor m, Monad m) => Applicative (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Lazy(Monoid w, Functor m, Monad m) => Applicative (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict
A type f is a Functor if it provides a function fmap which, given any types a and b
lets you apply any function from (a -> b) to turn an f a into an f b, preserving the
structure of f. Furthermore f needs to adhere to the following:
Note, that the second law follows from the free theorem of the type fmap and the first law, so you need only check that the former condition holds. See these articles by School of Haskell or David Luposchainsky for an explanation.
Methods
fmap :: (a -> b) -> f a -> f bfmap is used to apply a function of type
(a -> b)to a value of typef a, where f is a functor, to produce a value of typef b. Note that for any type constructor with more than one parameter (e.g.,Either), only the last type parameter can be modified with fmap (e.g.,binEither a b).Some type constructors with two parameters or more have a
instance that allows both the last and the penultimate parameters to be mapped over.Data.BifunctorExamples
Convert from a
Maybe Intto aMaybe Stringusing show:Example2 expressions fmap show NothingNothingfmap show (Just 3)Just "3"
Convert from an
Either Int Intto anEither Int Stringusing show:Example2 expressions fmap show (Left 17)Left 17fmap show (Right 17)Right "17"
Double each element of a list:
Example1 expression fmap (*2) [1,2,3][2,4,6]
Apply even to the second element of a pair:
Example1 expression fmap even (2,2)(2,True)
It may seem surprising that the function is only applied to the last element of the tuple compared to the list example above which applies it to every element in the list. To understand, remember that tuples are type constructors with multiple type parameters: a tuple of 3 elements
(a,b,c)can also be written(,,) a b cand itsFunctorinstance is defined forFunctor ((,,) a b)(i.e., only the third parameter is free to be mapped over withfmap).It explains why
fmapcan be used with tuples containing values of different types as in the following example:Example1 expression fmap even ("hello", 1.0, 4)("hello",1.0,True)
(<$) :: a -> f b -> f ainfixl 4Replace all locations in the input with the same value. The default definition is
fmap . const, but this may be overridden with a more efficient version.Examples
Perform a computation with Maybe and replace the result with a constant value if it is Just:
Example2 expressions 'a' <$ Just 2Just 'a''a' <$ NothingNothing
Instances215Functor, …
Functor GenDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.GenFunctor BlindDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor FixedDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor LargeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor NegativeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor NoShrinkDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor NonEmptyListDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor NonNegativeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor NonPositiveDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor NonZeroDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor OrderedListDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor PositiveDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor Shrink2Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor SmallDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor SmartDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor SortedListDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor RoseDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PropertyFunctor KeyMapDefined in aeson-2.2.5.1 · Data.Aeson.KeyMapFunctor FromJSONKeyFunctionDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONOnly law abiding up to interpretation
Functor IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalFunctor ParserDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalFunctor ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalFunctor AsyncDefined in async-2.2.6 · Control.Concurrent.Async.InternalFunctor ConcurrentlyDefined in async-2.2.6 · Control.Concurrent.Async.InternalFunctor ComplexDefined in base-4.22.0.0 · Data.ComplexFunctor FirstDefined in base-4.22.0.0 · Data.SemigroupFunctor LastDefined in base-4.22.0.0 · Data.SemigroupFunctor MaxDefined in base-4.22.0.0 · Data.SemigroupFunctor MinDefined in base-4.22.0.0 · Data.SemigroupFunctor ArgDescrDefined in base-4.22.0.0 · System.Console.GetOptFunctor ArgOrderDefined in base-4.22.0.0 · System.Console.GetOptFunctor OptDescrDefined in base-4.22.0.0 · System.Console.GetOptFunctor DecoderDefined in binary-0.8.9.3 · Data.Binary.Get.InternalFunctor GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalFunctor PutMDefined in binary-0.8.9.3 · Data.Binary.PutFunctor PutDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalFunctor PPDefined in cborg-0.2.10.0 · Codec.CBOR.PrettyFunctor SCCDefined in containers-0.8 · Data.GraphFunctor IntMapDefined in containers-0.8 · Data.IntMap.InternalFunctor DigitDefined in containers-0.8 · Data.Sequence.InternalFunctor ElemDefined in containers-0.8 · Data.Sequence.InternalFunctor FingerTreeDefined in containers-0.8 · Data.Sequence.InternalFunctor NodeDefined in containers-0.8 · Data.Sequence.InternalFunctor SeqDefined in containers-0.8 · Data.Sequence.InternalFunctor ViewLDefined in containers-0.8 · Data.Sequence.InternalFunctor ViewRDefined in containers-0.8 · Data.Sequence.InternalFunctor PostOrderDefined in containers-0.8 · Data.TreeFunctor TreeDefined in containers-0.8 · Data.TreeFunctor DNonEmptyDefined in dlist-1.0 · Data.DList.DNonEmpty.InternalFunctor DListDefined in dlist-1.0 · Data.DList.InternalFunctor PprMDefined in ghc-boot-th-9.14.1 · GHC.Boot.TH.PprLibFunctor NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanFunctor STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncFunctor HandlerDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.ExceptionFunctor IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFunctor FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidFunctor LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidFunctor DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdFunctor DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFunctor ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFunctor SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFunctor ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListFunctor NoIODefined in ghc-internal-9.1401.0 · GHC.Internal.GHCiFunctor Par1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor GenClosureDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFunctor GenStackFieldDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFunctor GenStackFrameDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFunctor GenStgStackClosureDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFunctor MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor QDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxFunctor TyVarBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxFunctor PDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPFunctor ReadPDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPFunctor ReadPrecDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPrecFunctor SoloDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor ConsumedDefined in parsec-3.1.18.0 · Text.Parsec.PrimFunctor AnnotDetailsDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJFunctor DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJFunctor SpanDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJFunctor ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayFunctor SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayFunctor STMDefined in stm-2.5.3.1 · Control.Sequential.STMFunctor MaybeDefined in strict-0.5.1 · Data.Strict.MaybeFunctor VectorDefined in vector-0.13.2.0 · Data.VectorFunctor IdDefined in vector-0.13.2.0 · Data.Vector.Fusion.UtilFunctor VectorDefined in vector-0.13.2.0 · Data.Vector.StrictFunctor BoxDefined in vector-stream-0.1.0.1 · Data.Stream.MonadicFunctor BoolPairDefined in witherable-0.5 · WitherableFunctor []Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyFunctor U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor V1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (Fun a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionFunctor (Shrinking s)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersFunctor (PropertyM m)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonadicFunctor (TkArray k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensFunctor (TkRecord k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensFunctor (Tokens k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensFunctor (Tagged2 s)Defined in aeson-2.2.5.1 · Data.Aeson.Types.GenericFunctor (ConcurrentlyE e)Defined in async-2.2.6 · Control.Concurrent.Async.InternalFunctor (Arg a)Defined in base-4.22.0.0 · Data.SemigroupFunctor (Decoder s)Defined in cborg-0.2.10.0 · Codec.CBOR.DecodingFunctor (IncrementalDecoder s)Defined in cborg-0.2.10.0 · Codec.CBOR.ReadFunctor (Map k)Defined in containers-0.8 · Data.Map.InternalFunctor (State s)Defined in containers-0.8 · Utils.Containers.Internal.StateFunctor (Format r)Defined in formatting-7.2.0 · Formatting.InternalThis can be used almost like contramap, e.g:
formatter :: Format r (b -> r) formatter = _ adapter :: a -> b adapter = _ adapted :: Format r (a -> r) adapted = fmap (. adapter) formatterFunctor (Array i)Defined in ghc-internal-9.1401.0 · GHC.Internal.ArrFunctor (ST s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpFunctor (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherFunctor (StateL s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsFunctor (StateR s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsFunctor (ST s)Defined in ghc-internal-9.1401.0 · GHC.Internal.STFunctor (Tuple2 a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor (Either a)Defined in strict-0.5.1 · Data.Strict.EitherFunctor (These a)Defined in strict-0.5.1 · Data.Strict.TheseFunctor (Pair e)Defined in strict-0.5.1 · Data.Strict.TupleFunctor (IParser t)Defined in text-2.1.3 · Data.Text.Internal.ReadFunctor (These a)Defined in these-1.2.1 · Data.TheseFunctor (HashMap k)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalFunctor (Step s)Defined in vector-stream-0.1.0.1 · Data.Stream.MonadicFunctor ((:->) a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionFunctor f => Functor (Zippy f)Defined in semialign-1.4 · Data.ZipFunctor f => Functor (MaybeApply f)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassFunctor f => Functor (WrappedApplicative f)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassFunctor f => Functor (Act f)Defined in semigroupoids-6.0.2 · Data.Semigroup.BifoldableFunctor f => Functor (Act f)Defined in semigroupoids-6.0.2 · Data.Semigroup.FoldableFunctor f => Functor (Lift f)Defined in transformers-0.6.1.2 · Control.Applicative.LiftFunctor f => Functor (WrappedFoldable f)Defined in witherable-0.5 · WitherableFunctor m => Functor (QuoteToQuasi m)Defined in th-compat-0.1.7 · Language.Haskell.TH.Syntax.CompatFunctor m => Functor (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeMonad m => Functor (WrappedMonad m)Defined in base-4.22.0.0 · Control.ApplicativeMonad m => Functor (Handler m)Defined in exceptions-0.10.11 · Control.Monad.CatchMonad m => Functor (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonad m => Functor (Stream m)Defined in vector-stream-0.1.0.1 · Data.Stream.MonadicArrow a => Functor (ArrowMonad a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowBifunctor p => Functor (Fix p)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixBifunctor p => Functor (Join p)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinFunctor (Mag a b)Defined in bifunctors-5.6.3 · Data.BiapplicativeFunctor (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFunctor (URec Char)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Double)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Float)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Int)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Word)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec (Ptr ()))Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (Tuple3 a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor (Bazaar a b)Defined in microlens-0.4.14.0 · Lens.MicroFunctor (Reply s u)Defined in parsec-3.1.18.0 · Text.Parsec.PrimFunctor (Tagged s)Defined in tagged-0.8.11 · Data.TaggedFunctor (Constant a)Defined in transformers-0.6.1.2 · Data.Functor.ConstantFunctor (bi a) => Functor (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapFunctor (t m) => Functor (LiftingAccum t m)Defined in mtl-2.3.1 · Control.Monad.AccumFunctor (t m) => Functor (LiftingSelect t m)Defined in mtl-2.3.1 · Control.Monad.SelectFunctor f => Functor (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidFunctor f => Functor (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalFunctor f => Functor (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor f => Functor (Indexing f)Defined in indexed-traversable-0.1.5 · WithIndexFunctor f => Functor (Static f a)Defined in semigroupoids-6.0.2 · Data.Semigroupoid.StaticFunctor f => Functor (Backwards f)Defined in transformers-0.6.1.2 · Control.Applicative.BackwardsDerived instance.
Functor f => Functor (Reverse f)Defined in transformers-0.6.1.2 · Data.Functor.ReverseDerived instance.
Functor m => Functor (Kleisli m a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowFunctor m => Functor (StateT s m)Defined in microlens-0.4.14.0 · Lens.MicroFunctor m => Functor (AccumT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.AccumFunctor m => Functor (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptFunctor m => Functor (IdentityT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityFunctor m => Functor (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderFunctor m => Functor (SelectT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.SelectFunctor m => Functor (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyFunctor m => Functor (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.StrictFunctor m => Functor (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPSFunctor m => Functor (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.LazyFunctor m => Functor (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictFunctor w => Functor (EnvT e w)Defined in comonad-5.0.10 · Control.Comonad.Trans.EnvFunctor w => Functor (StoreT s w)Defined in comonad-5.0.10 · Control.Comonad.Trans.StoreFunctor w => Functor (TracedT m w)Defined in comonad-5.0.10 · Control.Comonad.Trans.TracedMonad m => Functor (StateT s m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsMonad m => Functor (Bundle m v)Defined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle.MonadicArrow a => Functor (WrappedArrow a b)Defined in base-4.22.0.0 · Control.Applicative(Contravariant f, Contravariant g) => Functor (Compose f g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Compose(Applicative f, Monad f) => Functor (WhenMissing f x)Defined in containers-0.8 · Data.IntMap.Internal(Functor f, Functor g) => Functor (ComposeCF f g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Compose(Functor f, Functor g) => Functor (ComposeFC f g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Compose(Functor f, Functor g) => Functor (These1 f g)Defined in these-1.2.1 · Data.Functor.These(Generic1 f, Functor (Rep1 f)) => Functor (Generically1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (Cokleisli w a)Defined in comonad-5.0.10 · Control.ComonadFunctor (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (Tuple4 a b c)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.PrimFunctor (ContT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ContFunctor ((->) r)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor f => Functor (WhenMatched f x y)Defined in containers-0.8 · Data.IntMap.Internal(Applicative f, Monad f) => Functor (WhenMissing f k x)Defined in containers-0.8 · Data.Map.Internal(Functor f, Functor g) => Functor (Product f g)Defined in base-4.22.0.0 · Data.Functor.Product(Functor f, Functor g) => Functor (Sum f g)Defined in base-4.22.0.0 · Data.Functor.Sum(Functor f, Functor g) => Functor (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Functor f, Functor g) => Functor (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsBifunctor p => Functor (Flip p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FlipBifunctor p => Functor (WrappedBifunctor p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedFunctor (Clown f a)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownFunctor (Tuple5 a b c d)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor f => Functor (WhenMatched f k x y)Defined in containers-0.8 · Data.Map.InternalFunctor f => Functor (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor g => Functor (Joker g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerFunctor m => Functor (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPSFunctor m => Functor (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.LazyFunctor m => Functor (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict(Functor f, Functor g) => Functor (Compose f g)Defined in base-4.22.0.0 · Data.Functor.Compose(Functor f, Functor g) => Functor (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (Tuple6 a b c d e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Functor (f a), Functor (g a)) => Functor (Product f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Functor (f a), Functor (g a)) => Functor (Sum f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.SumFunctor (Tuple7 a b c d e f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Functor f, Bifunctor p) => Functor (Tannen f p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Bifunctor p, Functor g) => Functor (Biff p f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff
The Monad class defines the basic operations over a monad,
a concept from a branch of mathematics known as category theory.
From the perspective of a Haskell programmer, however, it is best to
think of a monad as an abstract datatype of actions.
Haskell's do expressions provide a convenient syntax for writing
monadic expressions.
Instances of Monad should satisfy the following:
- Left identity
- Right identity
- Associativity
Furthermore, the Monad and Applicative operations should relate as follows:
The above laws imply:
and that pure and (<*>) satisfy the applicative functor laws.
The instances of Monad for GHC.List.List, Maybe and System.IO.IO
defined in the Prelude satisfy these laws.
Methods
(>>=) :: m a -> (a -> m b) -> m binfixl 1Sequentially compose two actions, passing any value produced by the first as an argument to the second.
'
as >>= bs' can be understood as thedoexpressiondo a <- as bs aAn alternative name for this function is 'bind', but some people may refer to it as 'flatMap', which results from it being equivalent to
\x f -> join (fmap f x) :: Monad m => m a -> (a -> m b) -> m bwhich can be seen as mapping a value with
Monad m => m a -> m (m b)and then 'flattening'm (m b)tom busing join.(>>) :: m a -> m b -> m binfixl 1Sequentially compose two actions, discarding any value produced by the first, like sequencing operators (such as the semicolon) in imperative languages.
'
as >> bs' can be understood as thedoexpressiondo as bsor in terms of
as(>>=)as >>= const bsreturn :: a -> m aInject a value into the monadic type. This function should not be different from its default implementation as pure. The justification for the existence of this function is merely historic.
Instances100Monad, …
Monad GenDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.GenMonad RoseDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PropertyMonad IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonad ParserDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonad ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonad ComplexDefined in base-4.22.0.0 · Data.ComplexMonad FirstDefined in base-4.22.0.0 · Data.SemigroupMonad LastDefined in base-4.22.0.0 · Data.SemigroupMonad MaxDefined in base-4.22.0.0 · Data.SemigroupMonad MinDefined in base-4.22.0.0 · Data.SemigroupMonad GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalMonad PutMDefined in binary-0.8.9.3 · Data.Binary.PutMonad PutDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalMonad PPDefined in cborg-0.2.10.0 · Codec.CBOR.PrettyMonad SeqDefined in containers-0.8 · Data.Sequence.InternalMonad TreeDefined in containers-0.8 · Data.TreeMonad DNonEmptyDefined in dlist-1.0 · Data.DList.DNonEmpty.InternalMonad DListDefined in dlist-1.0 · Data.DList.InternalMonad PprMDefined in ghc-boot-th-9.14.1 · GHC.Boot.TH.PprLibMonad NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanMonad STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncMonad IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityMonad FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonad LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonad DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdMonad DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonad ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonad SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonad NoIODefined in ghc-internal-9.1401.0 · GHC.Internal.GHCiMonad Par1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonad MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonad QDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxMonad PDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPMonad ReadPDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPMonad ReadPrecDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPrecMonad SoloDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonad IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonad ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonad SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonad STMDefined in stm-2.5.3.1 · Control.Sequential.STMMonad VectorDefined in vector-0.13.2.0 · Data.VectorMonad IdDefined in vector-0.13.2.0 · Data.Vector.Fusion.UtilMonad VectorDefined in vector-0.13.2.0 · Data.Vector.StrictMonad BoxDefined in vector-stream-0.1.0.1 · Data.Stream.MonadicMonad []Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonad ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonad U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonad (Decoder s)Defined in cborg-0.2.10.0 · Codec.CBOR.DecodingMonad (IncrementalDecoder s)Defined in cborg-0.2.10.0 · Codec.CBOR.ReadMonad (State s)Defined in containers-0.8 · Utils.Containers.Internal.StateMonad (ST s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ST.Lazy.ImpMonad (Either e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherMonad (ST s)Defined in ghc-internal-9.1401.0 · GHC.Internal.STMonad (IParser t)Defined in text-2.1.3 · Data.Text.Internal.ReadMonad m => Monad (PropertyM m)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonadicMonad m => Monad (WrappedMonad m)Defined in base-4.22.0.0 · Control.ApplicativeMonad m => Monad (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonad m => Monad (QuoteToQuasi m)Defined in th-compat-0.1.7 · Language.Haskell.TH.Syntax.CompatMonad m => Monad (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeMonoid a => Monad (Tuple2 a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup a => Monad (These a)Defined in strict-0.5.1 · Data.Strict.TheseSemigroup a => Monad (These a)Defined in these-1.2.1 · Data.TheseArrowApply a => Monad (ArrowMonad a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowMonad (Tagged s)Defined in tagged-0.8.11 · Data.TaggedMonad (bi a) => Monad (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapMonad (t m) => Monad (LiftingAccum t m)Defined in mtl-2.3.1 · Control.Monad.AccumMonad (t m) => Monad (LiftingSelect t m)Defined in mtl-2.3.1 · Control.Monad.SelectMonad f => Monad (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonad f => Monad (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonad f => Monad (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonad m => Monad (Kleisli m a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowMonad m => Monad (StateT s m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsMonad m => Monad (StateT s m)Defined in microlens-0.4.14.0 · Lens.MicroMonad m => Monad (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonad m => Monad (IdentityT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityMonad m => Monad (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonad m => Monad (SelectT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.SelectMonad m => Monad (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonad m => Monad (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.StrictMonad m => Monad (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPSMonad m => Monad (Reverse m)Defined in transformers-0.6.1.2 · Data.Functor.ReverseDerived instance.
(Applicative f, Monad f) => Monad (WhenMissing f x)Defined in containers-0.8 · Data.IntMap.InternalEquivalent to
ReaderT k (ReaderT x (MaybeT f)).(Monoid a, Monoid b) => Monad (Tuple3 a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Monoid w, Functor m, Monad m) => Monad (AccumT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Accum(Monoid w, Monad m) => Monad (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Monoid w, Monad m) => Monad (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictMonad (Cokleisli w a)Defined in comonad-5.0.10 · Control.ComonadMonad (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.PrimMonad (ContT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ContMonad ((->) r)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Applicative f, Monad f) => Monad (WhenMissing f k x)Defined in containers-0.8 · Data.Map.InternalEquivalent to
ReaderT k (ReaderT x (MaybeT f)).(Monad f, Applicative f) => Monad (WhenMatched f x y)Defined in containers-0.8 · Data.IntMap.InternalEquivalent to
ReaderT Key (ReaderT x (ReaderT y (MaybeT f)))(Monad f, Monad g) => Monad (Product f g)Defined in base-4.22.0.0 · Data.Functor.Product(Monad f, Monad g) => Monad (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c) => Monad (Tuple4 a b c)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonad f => Monad (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonad m => Monad (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPS(Monad f, Applicative f) => Monad (WhenMatched f k x y)Defined in containers-0.8 · Data.Map.InternalEquivalent to
ReaderT k (ReaderT x (ReaderT y (MaybeT f)))(Monoid w, Monad m) => Monad (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Lazy(Monoid w, Monad m) => Monad (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict
Monads that also support choice and failure.
Instances45MonadPlus, …
MonadPlus IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonadPlus ParserDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonadPlus ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonadPlus GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalMonadPlus SeqDefined in containers-0.8 · Data.Sequence.InternalMonadPlus DListDefined in dlist-1.0 · Data.DList.InternalMonadPlus STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncMonadPlus MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadPlus PDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPMonadPlus ReadPDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPMonadPlus ReadPrecDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPrecMonadPlus IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadPlus ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonadPlus SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonadPlus VectorDefined in vector-0.13.2.0 · Data.VectorMonadPlus VectorDefined in vector-0.13.2.0 · Data.Vector.StrictMonadPlus []Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseCombines lists by concatenation, starting from the empty list.
Monad m => MonadPlus (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonad m => MonadPlus (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeMonadPlus ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonadPlus U1Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(ArrowApply a, ArrowPlus a) => MonadPlus (ArrowMonad a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowMonadPlus (bi a) => MonadPlus (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapMonadPlus f => MonadPlus (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonadPlus f => MonadPlus (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonadPlus f => MonadPlus (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadPlus m => MonadPlus (Kleisli m a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowMonadPlus m => MonadPlus (IdentityT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityMonadPlus m => MonadPlus (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadPlus m => MonadPlus (SelectT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.SelectMonadPlus m => MonadPlus (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadPlus m => MonadPlus (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.StrictMonadPlus m => MonadPlus (Reverse m)Defined in transformers-0.6.1.2 · Data.Functor.ReverseDerived instance.
(Functor m, MonadPlus m) => MonadPlus (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPS(Monad m, Monoid e) => MonadPlus (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Monoid w, Functor m, MonadPlus m) => MonadPlus (AccumT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Accum(Monoid w, MonadPlus m) => MonadPlus (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadPlus m) => MonadPlus (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictMonadPlus (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.Prim(MonadPlus f, MonadPlus g) => MonadPlus (Product f g)Defined in base-4.22.0.0 · Data.Functor.Product(MonadPlus f, MonadPlus g) => MonadPlus (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadPlus f => MonadPlus (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Functor m, MonadPlus m) => MonadPlus (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPS(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict
The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following:
- Right identity
- Left identity
- Associativity
(
law)
- Concatenation
You can alternatively define mconcat instead of mempty, in which case the laws are:
- Unit
- Multiplication
- Subclass
The method names refer to the monoid of lists under concatenation, but there are many other instances.
Some types can be viewed as a monoid in more than one way,
e.g. both addition and multiplication on numbers.
In such cases we often define newtypes and make those instances
of Monoid, e.g. Data.Semigroup.Sum and Data.Semigroup.Product.
NOTE: Semigroup is a superclass of Monoid since base-4.11.0.0.
Methods
mempty :: aIdentity of mappend
Examples
Example1 expression "Hello world" <> mempty"Hello world"
Example1 expression mempty <> [1, 2, 3][1,2,3]
mappend :: a -> a -> aAn associative operation
NOTE: This method is redundant and has the default implementation
mappend = (<>)since base-4.11.0.0. Should it be implemented manually, since mappend is a synonym for (<>), it is expected that the two functions are defined the same way. In a future GHC release mappend will be removed from Monoid.mconcat :: [a] -> aFold a list using the monoid.
For most types, the default definition for mconcat will be used, but the function is included in the class definition so that an optimized version can be provided for specific types.
Example1 expression mconcat ["Hello", " ", "Haskell", "!"]"Hello Haskell!"
Instances120Monoid, …
Monoid EveryDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonoidsMonoid SomeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonoidsMonoid SeriesDefined in aeson-2.2.5.1 · Data.Aeson.Encoding.InternalMonoid KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeyMonoid ByteArrayDefined in base-4.22.0.0 · Data.Array.ByteMonoid BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalMonoid ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeMonoid ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalMonoid ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalMonoid JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesMonoid StrictUnitDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.StrictMonoid EncodingDefined in cborg-0.2.10.0 · Codec.CBOR.EncodingMonoid IntSetDefined in containers-0.8 · Data.IntSet.Internalmempty= emptyMonoid UnitDefined in deepseq-1.5.1.0 · Control.DeepSeqMonoid AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesMonoid EventLifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesMonoid LifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.Typesmappendtakes the longer of two lifetimes.Monoid ExceptionContextDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.ContextMonoid OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid OsStringDefined in os-string-2.0.8 · System.OsString.Internal.Types"String-Concatenation" for OsString. This is not the same as
(</>).Monoid PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesMonoid WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesMonoid DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJMonoid TextDefined in text-2.1.3 · Data.Text · orphanMonoid BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderMonoid TextDefined in text-2.1.3 · Data.Text.Lazy · orphanMonoid StrictTextBuilderDefined in text-2.1.3 · Data.Text.Internal.StrictBuilderMonoid ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalMonoid CalendarDiffDaysDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDaysAdditive
Monoid CalendarDiffTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTimeAdditive
Monoid StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonMonoid StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonMonoid ()Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid (KeyMap v)Defined in aeson-2.2.5.1 · Data.Aeson.KeyMapMonoid (IResult a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonoid (Parser a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonoid (Result a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonoid (Comparison a)Defined in base-4.22.0.0 · Data.Functor.ContravariantMonoid (Equivalence a)Defined in base-4.22.0.0 · Data.Functor.ContravariantMonoid (Predicate a)Defined in base-4.22.0.0 · Data.Functor.ContravariantMonoid (PutM ())Defined in binary-0.8.9.3 · Data.Binary.PutMonoid (IntMap a)Defined in containers-0.8 · Data.IntMap.Internalmempty= emptyMonoid (Seq a)Defined in containers-0.8 · Data.Sequence.Internalmempty= emptyMonoid (MergeSet a)Defined in containers-0.8 · Data.Set.InternalMonoid (EqM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtilMonoid (OrdM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtilMonoid (DList a)Defined in dlist-1.0 · Data.DList.InternalMonoid (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonoid (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonoid (Endo a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJMonoid (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayMonoid (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayMonoid (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonoid (Validity k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugMonoid (Vector a)Defined in vector-0.13.2.0 · Data.VectorMonoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictMonoid [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid a => Monoid (STM a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncMonoid a => Monoid (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityMonoid a => Monoid (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdMonoid a => Monoid (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid a => Monoid (Q a)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxMonoid a => Monoid (IO a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid a => Monoid (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid m => Monoid (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupMonoid p => Monoid (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup a => Monoid (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseLift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup
Smay be turned into a monoid simply by adjoining an elementenot inSand defininge*e = eande*s = s = s*efor alls ∈ S."Since 4.11.0: constraint on inner
avalue generalised from Monoid to Semigroup.Semigroup a => Monoid (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeBits a => Monoid (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Monoid (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => Monoid (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.FiniteBits a => Monoid (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.Ord a => Monoid (Set a)Defined in containers-0.8 · Data.Set.Internalmempty= emptyOrd a => Monoid (Max a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsOrd a => Monoid (Min a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsStorable a => Monoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StorableNum a => Monoid (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Monoid (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalHashable a => Monoid (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalPrim a => Monoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.PrimitiveUnbox a => Monoid (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphan(Semigroup a, Monoid a) => Monoid (Concurrently a)Defined in async-2.2.6 · Control.Concurrent.Async.Internal(Ord a, Bounded a) => Monoid (Max a)Defined in base-4.22.0.0 · Data.Semigroup(Ord a, Bounded a) => Monoid (Min a)Defined in base-4.22.0.0 · Data.Semigroup(Generic a, Monoid (Rep a ())) => Monoid (Generically a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsApplicative f => Monoid (Traversed a f)Defined in microlens-0.4.14.0 · Lens.MicroMonoid (Format r (a -> r))Defined in formatting-7.2.0 · Formatting.InternalUseful instance for applying two formatters to the same input argument. For example:
format (year <> "/" % month) nowwill yield"2015/01".Monoid (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonoid (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid a => Monoid (Op a b)Defined in base-4.22.0.0 · Data.Functor.Contravariantmempty @(Op a b)without newtypes ismempty @(b->a)=_ -> mempty.mempty :: Op a b mempty = Op _ -> memptyMonoid a => Monoid (ST s a)Defined in ghc-internal-9.1401.0 · GHC.Internal.STMonoid b => Monoid (a -> b)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseOrd k => Monoid (Map k v)Defined in containers-0.8 · Data.Map.Internalmempty= emptyHashable k => Monoid (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(Monoid a, Monoid b) => Monoid (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(Monoid a, Monoid b) => Monoid (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Semigroup a, Monoid a) => Monoid (ConcurrentlyE e a)Defined in async-2.2.6 · Control.Concurrent.Async.Internal(Repeat f, Monoid a) => Monoid (Zippy f a)Defined in semialign-1.4 · Data.ZipAlternative f => Monoid (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Monoid (Traversed a f)Defined in indexed-traversable-0.1.5 · WithIndexMonad m => Monoid (Sequenced a m)Defined in indexed-traversable-0.1.5 · WithIndexMonoid (f p) => Monoid (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid a => Monoid (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstMonoid a => Monoid (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.Constant(Biapplicative bi, Monoid a, Monoid b) => Monoid (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biap(Applicative f, Monoid a) => Monoid (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid(Monoid a, Monoid b, Monoid c) => Monoid (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Semigroup a, Monoid a) => Monoid (Tagged s a)Defined in tagged-0.8.11 · Data.TaggedMonoid c => Monoid (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Monoid (f a), Monoid (g a)) => Monoid (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product(Monoid (f p), Monoid (g p)) => Monoid ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Monoid a, Semigroup (ParsecT s u m a)) => Monoid (ParsecT s u m a)Defined in parsec-3.1.18.0 · Text.Parsec.PrimMonoid (f (g a)) => Monoid (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeMonoid (f (g p)) => Monoid ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid (f p) => Monoid (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
Non-empty (and non-strict) list type.
Constructors
a :| [a]infixr 5
Instances60Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanFunctor NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanMonadFix NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanFoldable NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipFoldable1 NonEmptyDefined in base-4.22.0.0 · Data.Foldable1Eq1 NonEmptyDefined in base-4.22.0.0 · Data.Functor.ClassesOrd1 NonEmptyDefined in base-4.22.0.0 · Data.Functor.ClassesRead1 NonEmptyDefined in base-4.22.0.0 · Data.Functor.ClassesShow1 NonEmptyDefined in base-4.22.0.0 · Data.Functor.ClassesNFData1 NonEmptyDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary1 NonEmptyDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable1 NonEmptyDefined in hashable-1.5.1.0 · Data.Hashable.ClassComonad NonEmptyDefined in comonad-5.0.10 · Control.ComonadComonadApply NonEmptyDefined in comonad-5.0.10 · Control.ComonadAlt NonEmptyDefined in semigroupoids-6.0.2 · Data.Functor.AltApply NonEmptyDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind NonEmptyDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend NonEmptyDefined in semigroupoids-6.0.2 · Data.Functor.ExtendTraversable1 NonEmptyDefined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.ClassSemialign NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalRepeat NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalUnzip NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalZip NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalFromJSON1 NonEmptyDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 NonEmptyDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexFoldable1WithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexRepeatWithIndex Int NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalLift a => Lift (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIsList (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.IsListEq a => Eq (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseData a => Data (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd a => Ord (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseRead a => Read (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadShow a => Show (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowGeneric (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanNFData a => NFData (NonEmpty a)Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary a => Binary (NonEmpty a)Defined in binary-0.8.9.3 · Data.Binary.ClassArbitrary a => Arbitrary (NonEmpty a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (NonEmpty a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (NonEmpty a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable a => Hashable (NonEmpty a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON a => FromJSON (NonEmpty a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (NonEmpty a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONIxed (NonEmpty a)Defined in microlens-0.4.14.0 · Lens.Micro.InternalEach (NonEmpty a) (NonEmpty b) a bDefined in microlens-0.4.14.0 · Lens.Micro.Internaltype Rep (NonEmpty a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"NonEmpty"
"GHC.Internal.Base"
"ghc-internal"
'False) (C1 ('MetaCons":|"
('InfixI 'RightAssociative5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))type Rep1 NonEmpty = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"NonEmpty"
"GHC.Internal.Base"
"ghc-internal"
'False) (C1 ('MetaCons":|"
('InfixI 'RightAssociative5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))type Item (NonEmpty a) = aDefined in ghc-internal-9.1401.0 · GHC.Internal.IsListtype Index (NonEmpty a) = IntDefined in microlens-0.4.14.0 · Lens.Micro.Internaltype IxValue (NonEmpty a) = aDefined in microlens-0.4.14.0 · Lens.Micro.Internal
The class of semigroups (types with an associative binary operation).
Instances should satisfy the following:
You can alternatively define sconcat instead of (<>), in which case the laws are:
Methods
(<>) :: a -> a -> ainfixr 6An associative operation.
Examples
Example1 expression [1,2,3] <> [4,5,6][1,2,3,4,5,6]
Example1 expression Just [1, 2, 3] <> Just [4, 5, 6]Just [1,2,3,4,5,6]
Example1 expression putStr "Hello, " <> putStrLn "World!"Hello, World!
sconcat :: NonEmpty a -> aReduce a non-empty list with <>
The default definition should be sufficient, but this can be overridden for efficiency.
Examples
For the following examples, we will assume that we have:
Example1 expression import Data.List.NonEmpty (NonEmpty (..))Example1 expression sconcat $ "Hello" :| [" ", "Haskell", "!"]"Hello Haskell!"
Example1 expression sconcat $ Just [1, 2, 3] :| [Nothing, Just [4, 5, 6]]Just [1,2,3,4,5,6]
Example1 expression sconcat $ Left 1 :| [Right 2, Left 3, Right 4]Right 2
stimes :: Integral b => b -> a -> aRepeat a value
ntimes.The default definition will raise an exception for a multiplier that is
<= 0. This may be overridden with an implementation that is total. For monoids it is preferred to usestimesMonoid.By making this a member of the class, idempotent semigroups and monoids can upgrade this to execute in
\mathcal{O}(1)by pickingstimes = stimesIdempotentorstimes = stimesIdempotentMonoidrespectively.Examples
Example1 expression stimes 4 [1][1,1,1,1]
Example1 expression stimes 5 (putStr "hi!")hi!hi!hi!hi!hi!
Example1 expression stimes 3 (Right ":)")Right ":)"
Instances140Semigroup, …
Semigroup EveryDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonoidsSemigroup SomeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonoidsSemigroup SeriesDefined in aeson-2.2.5.1 · Data.Aeson.Encoding.InternalSemigroup KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeySemigroup ByteArrayDefined in base-4.22.0.0 · Data.Array.ByteSemigroup BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.InternalSemigroup ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeSemigroup ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalSemigroup ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalSemigroup JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesSemigroup StrictUnitDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.StrictSemigroup EncodingDefined in cborg-0.2.10.0 · Codec.CBOR.EncodingSemigroup IntSetDefined in containers-0.8 · Data.IntSet.Internal(<>)= unionSemigroup IntersectionDefined in containers-0.8 · Data.IntSet.InternalSemigroup UnitDefined in deepseq-1.5.1.0 · Control.DeepSeqSemigroup VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesSemigroup EventLifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesSemigroup LifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesSemigroup ExceptionContextDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.ContextSemigroup OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup OsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesSemigroup PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesSemigroup WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesSemigroup DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJSemigroup TextDefined in text-2.1.3 · Data.Text · orphanBeware:
stimeswill crash if the given number does not fit into anInt.Semigroup BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderSemigroup TextDefined in text-2.1.3 · Data.Text.Lazy · orphanSemigroup StrictTextBuilderDefined in text-2.1.3 · Data.Text.Internal.StrictBuilderConcatenation of StrictBuilder is right-biased: the right builder will be run first. This allows a builder to run tail-recursively when it was accumulated left-to-right.
Semigroup ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalSemigroup CalendarDiffDaysDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDaysAdditive
Semigroup CalendarDiffTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTimeAdditive
Semigroup StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonORs the flags.
Semigroup StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonORs the masks.
Semigroup ()Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid m => Semigroup (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupSemigroup (KeyMap v)Defined in aeson-2.2.5.1 · Data.Aeson.KeyMapSemigroup (IResult a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalSemigroup (Parser a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalSemigroup (Result a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalSemigroup (FromMaybe b)Defined in base-4.22.0.0 · Data.Foldable1Semigroup (NonEmptyDList a)Defined in base-4.22.0.0 · Data.Foldable1Semigroup (Comparison a)Defined in base-4.22.0.0 · Data.Functor.ContravariantSemigroup (Equivalence a)Defined in base-4.22.0.0 · Data.Functor.ContravariantSemigroup (Predicate a)Defined in base-4.22.0.0 · Data.Functor.ContravariantSemigroup (First a)Defined in base-4.22.0.0 · Data.SemigroupSemigroup (Last a)Defined in base-4.22.0.0 · Data.SemigroupSemigroup (PutM ())Defined in binary-0.8.9.3 · Data.Binary.PutSemigroup (IntMap a)Defined in containers-0.8 · Data.IntMap.Internal(<>)= unionSemigroup (Seq a)Defined in containers-0.8 · Data.Sequence.Internal(<>)=(><)Semigroup (MergeSet a)Defined in containers-0.8 · Data.Set.InternalSemigroup (EqM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtilComposes left-to-right, short-circuits on False
Semigroup (OrdM a)Defined in containers-0.8 · Utils.Containers.Internal.EqOrdUtilComposes left-to-right, short-circuits on non-EQ
Semigroup (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalSemigroup (DList a)Defined in dlist-1.0 · Data.DList.InternalSemigroup (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.NonEmpty · orphanSemigroup (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidSemigroup (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidSemigroup (Endo a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup (FromMaybe b)Defined in indexed-traversable-0.1.5 · WithIndexSemigroup (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJSemigroup (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArraySemigroup (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArraySemigroup (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArraySemigroup (Validity k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugSemigroup (Vector a)Defined in vector-0.13.2.0 · Data.VectorSemigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictSemigroup [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup a => Semigroup (Concurrently a)Defined in async-2.2.6 · Control.Concurrent.Async.InternalOnly defined by
asyncforbase >= 4.9Semigroup a => Semigroup (JoinWith a)Defined in base-4.22.0.0 · Data.Foldable1Semigroup a => Semigroup (STM a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncSemigroup a => Semigroup (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentitySemigroup a => Semigroup (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdSemigroup a => Semigroup (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup a => Semigroup (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup a => Semigroup (Q a)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxSemigroup a => Semigroup (IO a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup a => Semigroup (JoinWith a)Defined in semigroupoids-6.0.2 · Data.Semigroup.FoldableSemigroup a => Semigroup (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeSemigroup a => Semigroup (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup p => Semigroup (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsBits a => Semigroup (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Semigroup (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Semigroup (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => Semigroup (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.Ord a => Semigroup (Max a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Semigroup (Min a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Semigroup (Intersection a)Defined in containers-0.8 · Data.Set.InternalOrd a => Semigroup (Set a)Defined in containers-0.8 · Data.Set.Internal(<>)= unionOrd a => Semigroup (Max a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsOrd a => Semigroup (Min a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.UtilsStorable a => Semigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StorableNum a => Semigroup (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Semigroup (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalHashable a => Semigroup (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalPrim a => Semigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.PrimitiveUnbox a => Semigroup (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphan(Generic a, Semigroup (Rep a ())) => Semigroup (Generically a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsApplicative f => Semigroup (Traversed a f)Defined in microlens-0.4.14.0 · Lens.MicroSemigroup (Format r (a -> r))Defined in formatting-7.2.0 · Formatting.InternalSemigroup (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherSemigroup (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxySemigroup (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (Either a b)Defined in strict-0.5.1 · Data.Strict.EitherSemigroup a => Semigroup (ConcurrentlyE e a)Defined in async-2.2.6 · Control.Concurrent.Async.InternalEither the combination of the successful results, or the first failure.
Semigroup a => Semigroup (Op a b)Defined in base-4.22.0.0 · Data.Functor.ContravariantSemigroup a => Semigroup (ST s a)Defined in ghc-internal-9.1401.0 · GHC.Internal.STSemigroup b => Semigroup (a -> b)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseOrd k => Semigroup (Map k v)Defined in containers-0.8 · Data.Map.Internal(<>)= unionHashable k => Semigroup (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalAlt f => Semigroup (Alt_ f a)Defined in semigroupoids-6.0.2 · Data.Semigroup.FoldableApply f => Semigroup (Act f a)Defined in semigroupoids-6.0.2 · Data.Semigroup.BifoldableApply f => Semigroup (Act f a)Defined in semigroupoids-6.0.2 · Data.Semigroup.Foldable(Semigroup a, Semigroup b) => Semigroup (These a b)Defined in strict-0.5.1 · Data.Strict.These(Semigroup a, Semigroup b) => Semigroup (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(Semigroup a, Semigroup b) => Semigroup (These a b)Defined in these-1.2.1 · Data.These(Semigroup a, Semigroup b) => Semigroup (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base(Zip f, Semigroup a) => Semigroup (Zippy f a)Defined in semialign-1.4 · Data.ZipAlternative f => Semigroup (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalApplicative f => Semigroup (Traversed a f)Defined in indexed-traversable-0.1.5 · WithIndexMonad m => Semigroup (Sequenced a m)Defined in indexed-traversable-0.1.5 · WithIndexSemigroup (f p) => Semigroup (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstSemigroup a => Semigroup (Tagged s a)Defined in tagged-0.8.11 · Data.TaggedSemigroup a => Semigroup (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.Constant(Biapplicative bi, Semigroup a, Semigroup b) => Semigroup (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biap(Applicative f, Semigroup a) => Semigroup (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup a => Semigroup (ParsecT s u m a)Defined in parsec-3.1.18.0 · Text.Parsec.PrimThe Semigroup instance for ParsecT is used to append the result of several parsers, for example:
(many $ chara) <> (many $ charb)The above will parse a string like
"aabbb"and return a successful parse result"aabbb". Compare against the below which will produce a result of"bbb"for the same input:(many $ chara) >> (many $ charb) (many $ chara) *> (many $ charb)Semigroup c => Semigroup (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Semigroup (f a), Semigroup (g a)) => Semigroup (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product(Semigroup (f p), Semigroup (g p)) => Semigroup ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup (f (g a)) => Semigroup (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeSemigroup (f (g p)) => Semigroup ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (f p) => Semigroup (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Base
Uninhabited data type
Instances43Eq, Data, Ord, Read, Show, Ix, …
Eq VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseData VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseRead VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadShow VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.IxGeneric VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseException VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeNFData VoidDefined in deepseq-1.5.1.0 · Control.DeepSeqBinary VoidDefined in binary-0.8.9.3 · Data.Binary.ClassFinite VoidDefined in random-1.3.1 · System.Random.GFiniteHashable VoidDefined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON VoidDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey VoidDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON VoidDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey VoidDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable VoidDefined in formatting-7.2.0 · Formatting.BuildableLift VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftFoldableWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Void U1Defined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Void V1Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void U1Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void V1Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void U1Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void V1Defined in indexed-traversable-0.1.5 · WithIndexRepeatWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex Void ProxyDefined in witherable-0.5 · WitherableWitherableWithIndex Void ProxyDefined in witherable-0.5 · WitherableFoldableWithIndex Void (Const e)Defined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Void (Constant e)Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void (Const e)Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void (Constant e)Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void (Const e)Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void (Constant e)Defined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.5 · WithIndextype Rep Void = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Void"
"GHC.Internal.Base"
"ghc-internal"
'False) V1
The Bits class defines bitwise operations over integral types.
Bits are numbered from 0 with bit 0 being the least significant bit.
Methods
(.&.) :: a -> a -> ainfixl 7Bitwise "and"
(.|.) :: a -> a -> ainfixl 5Bitwise "or"
xor :: a -> a -> ainfixl 6Bitwise "xor"
complement :: a -> aReverse all the bits in the argument
shift :: a -> Int -> ainfixl 8shift x ishiftsxleft byibits ifiis positive, or right by-ibits otherwise. Right shifts perform sign extension on signed number types; i.e. they fill the top bits with 1 if thexis negative and with 0 otherwise.An instance can define either this unified shift or shiftL and shiftR, depending on which is more convenient for the type in question.
rotate :: a -> Int -> ainfixl 8zeroBits :: azeroBits is the value with all bits unset.
The following laws ought to hold (for all valid bit indices
n):clearBit zeroBits n == zeroBitssetBit zeroBits n == bit ntestBit zeroBits n == FalsepopCount zeroBits == 0
This method uses
clearBit (bit 0) 0as its default implementation (which ought to be equivalent to zeroBits for types which possess a 0th bit).bit :: Int -> asetBit :: a -> Int -> ax `setBit` iis the same asx .|. bit iclearBit :: a -> Int -> ax `clearBit` iis the same asx .&. complement (bit i)complementBit :: a -> Int -> ax `complementBit` iis the same asx `xor` bit itestBit :: a -> Int -> Boolx `testBit` iis the same asx .&. bit n /= 0In other words it returns True if the bit at offset @n is set.
Can be implemented using
testBitDefaultifais also an instance of Num.bitSizeMaybe :: a -> Maybe IntReturn the number of bits in the type of the argument. The actual value of the argument is ignored. Returns Nothing for types that do not have a fixed bitsize, like Integer.
bitSize :: a -> IntReturn the number of bits in the type of the argument. The actual value of the argument is ignored. The function bitSize is undefined for types that do not have a fixed bitsize, like Integer.
Default implementation based upon bitSizeMaybe provided since 4.12.0.0.
isSigned :: a -> BoolReturn True if the argument is a signed type. The actual value of the argument is ignored
shiftL :: a -> Int -> ainfixl 8unsafeShiftL :: a -> Int -> ashiftR :: a -> Int -> ainfixl 8Shift the first argument right by the specified number of bits. The result is undefined for negative shift amounts and shift amounts greater or equal to the bitSize. Some instances may throw an Overflow exception if given a negative input.
Right shifts perform sign extension on signed number types; i.e. they fill the top bits with 1 if the
xis negative and with 0 otherwise.An instance can define either this and shiftL or the unified shift, depending on which is more convenient for the type in question.
unsafeShiftR :: a -> Int -> aShift the first argument right by the specified number of bits, which must be non-negative and smaller than the number of bits in the type.
Right shifts perform sign extension on signed number types; i.e. they fill the top bits with 1 if the
xis negative and with 0 otherwise.Defaults to shiftR unless defined explicitly by an instance.
rotateL :: a -> Int -> ainfixl 8rotateR :: a -> Int -> ainfixl 8popCount :: a -> IntReturn the number of set bits in the argument. This number is known as the population count or the Hamming weight.
Can be implemented using
popCountDefaultifais also an instance of Num.
Instances70Bits, …
Bits Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesBits IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsBits NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsBits EventTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollBits EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.PollBits CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBits IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrBits WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrBits Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBits BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsInterpret Bool as 1-bit bit-field
Bits IntDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsBits WordDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsBits Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits CAttributesDefined in unix-2.8.8.0 · System.Posix.Files.CommonBits StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonBits StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonBits a => Bits (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Bits (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Bits (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Bits (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Bits (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityBits a => Bits (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdBits a => Bits (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstBits a => Bits (Tagged s a)Defined in tagged-0.8.11 · Data.Tagged
The FiniteBits class denotes types with a finite, fixed number of bits.
Methods
finiteBitSize :: b -> IntReturn the number of bits in the type of the argument. The actual value of the argument is ignored. Moreover, finiteBitSize is total, in contrast to the deprecated bitSize function it replaces.
finiteBitSize = bitSize bitSizeMaybe = Just . finiteBitSizecountLeadingZeros :: b -> IntCount number of zero bits preceding the most significant set bit.
countLeadingZeros (zeroBits :: a) = finiteBitSize (zeroBits :: a)countLeadingZeros can be used to compute log base 2 via
logBase2 x = finiteBitSize x - 1 - countLeadingZeros xNote: The default implementation for this method is intentionally naive. However, the instances provided for the primitive integral types are implemented using CPU specific machine instructions.
countTrailingZeros :: b -> IntCount number of zero bits following the least significant set bit.
countTrailingZeros (zeroBits :: a) = finiteBitSize (zeroBits :: a) countTrailingZeros . negate = countTrailingZerosThe related find-first-set operation can be expressed in terms of countTrailingZeros as follows
findFirstSet x = 1 + countTrailingZeros xNote: The default implementation for this method is intentionally naive. However, the instances provided for the primitive integral types are implemented using CPU specific machine instructions.
Instances65FiniteBits, …
FiniteBits Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesFiniteBits EventTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollFiniteBits EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.PollFiniteBits CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFiniteBits IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrFiniteBits WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrFiniteBits Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesFiniteBits BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsFiniteBits IntDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsFiniteBits WordDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsFiniteBits Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits a => FiniteBits (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFiniteBits a => FiniteBits (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdFiniteBits a => FiniteBits (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFiniteBits a => FiniteBits (Tagged s a)Defined in tagged-0.8.11 · Data.Tagged
The Eq class defines equality (==) and inequality (/=). All the basic datatypes exported by the Prelude are instances of Eq, and Eq may be derived for any datatype whose constituents are also instances of Eq.
The Haskell Report defines no laws for Eq. However, instances are encouraged to follow these properties:
Instances543Eq, …
Eq ShrunkDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionEq ASCIIStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq PrintableStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq UnicodeStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq ADefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyEq BDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyEq CDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyEq OrdADefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyEq OrdBDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyEq OrdCDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyEq LitDefined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensEq NumberDefined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensEq KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeyEq ArityDefined in aeson-2.2.5.1 · Data.Aeson.THEq FunArgDefined in aeson-2.2.5.1 · Data.Aeson.THEq StarKindStatusDefined in aeson-2.2.5.1 · Data.Aeson.THEq DotNetTimeDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalEq JSONPathElementDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalEq SumEncodingDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalEq ValueDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalEq AsyncCancelledDefined in async-2.2.6 · Control.Concurrent.Async.InternalEq ByteArrayDefined in base-4.22.0.0 · Data.Array.ByteEq IoManagerFlagDefined in base-4.22.0.0 · GHC.RTS.FlagsEq TimeoutDefined in base-4.22.0.0 · System.TimeoutEq BiFunDefined in bifunctors-5.6.3 · Data.Bifunctor.THEq OptionsDefined in bifunctors-5.6.3 · Data.Bifunctor.THEq StarKindStatusDefined in bifunctors-5.6.3 · Data.Bifunctor.TH.InternalEq FloatingDecimalDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.D2SEq FloatingDecimalDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.F2SEq ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeEq ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalEq ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalEq Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesEq JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesEq JSValueDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesEq CountFailureDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.SizeEq SchemaErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.CanonicalEq ByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArrayEq SlicedByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArray.SlicedEq TokenTypeDefined in cborg-0.2.10.0 · Codec.CBOR.DecodingEq TokensDefined in cborg-0.2.10.0 · Codec.CBOR.EncodingEq TermTokenDefined in cborg-0.2.10.0 · Codec.CBOR.FlatTermEq DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadEq TermDefined in cborg-0.2.10.0 · Codec.CBOR.TermEq ClockDefined in clock-0.8.4 · System.ClockEq TimeSpecDefined in clock-0.8.4 · System.ClockEq SecondsDefined in clock-0.8.4 · System.Clock.SecondsEq IntSetDefined in containers-0.8 · Data.IntSet.InternalEq IntersectionDefined in containers-0.8 · Data.IntSet.InternalEq PrefixDefined in containers-0.8 · Data.IntSet.Internal.IntTreeCommonsEq FileTypeDefined in directory-1.3.10.0 · System.Directory.Internal.CommonEq PermissionsDefined in directory-1.3.10.0 · System.Directory.Internal.CommonEq XdgDirectoryDefined in directory-1.3.10.0 · System.Directory.Internal.CommonEq XdgDirectoryListDefined in directory-1.3.10.0 · System.Directory.Internal.CommonEq TimeoutDefined in extra-1.8 · System.Time.ExtraEq VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseEq BigNatDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.BigNatEq IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.IntegerEq NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.NaturalEq ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderEq ClosureTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.ClosureTypesEq BlockReasonDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncEq ThreadIdDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncEq ThreadStatusDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncEq ConstrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataEquality of constructors
Eq ConstrRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataEq DataRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataEq FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataEq AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq SomeTypeRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalEq UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.UniqueEq VersionDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.VersionEq ControlMessageDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.ControlEq EPollFdDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollEq EventTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollEq EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesEq EventLifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesEq LifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesEq FdKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.ManagerEq StateDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.ManagerEq EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.PollEq TimeoutKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.TimeOutEq StateDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.TimerManagerEq UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.UniqueEq ErrorCallDefined in ghc-internal-9.1401.0 · GHC.Internal.ExceptionEq ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeEq SpecConstrAnnotationDefined in ghc-internal-9.1401.0 · GHC.Internal.ExtsEq FingerprintDefined in ghc-internal-9.1401.0 · GHC.Internal.Fingerprint.TypeEq ErrnoDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.ErrorEq CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEq IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrEq WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrEq ForeignSrcLangDefined in ghc-internal-9.1401.0 · GHC.Internal.ForeignSrcLangEq AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq PrimTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresEq TsoFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresEq WhatNextDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresEq WhyBlockedDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresEq HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesEq StgInfoTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesEq CostCentreDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesEq CostCentreStackDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesEq IndexTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesEq StgTSOProfInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesEq MaskingStateDefined in ghc-internal-9.1401.0 · GHC.Internal.IOEq BufferStateDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.BufferEq IODeviceTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.DeviceEq SeekModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.DeviceEq CodingProgressDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Encoding.TypesEq ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionEq AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionEq ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionEq IOErrorTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionEq IOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionEq HandlePosnDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.HandleEq BufferModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesEq HandleDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesEq NewlineDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesEq NewlineModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesEq IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeEq IoSubSystemDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.SubSystemEq InfoProvDefined in ghc-internal-9.1401.0 · GHC.Internal.InfoProv.TypesEq Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq ExtensionDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensionsEq IoManagerFlagDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsEq ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsEq WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsEq ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfEq WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfEq StackEntryDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.DecodeEq SrcLocDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.TypesEq CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CTimerDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEq AnnLookupDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq AnnTargetDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq BangDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq BndrVisDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq BodyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq BytesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq CallconvDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq ClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq ConDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq DecDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq DerivClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq DerivStrategyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq DocLocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq ExpDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq FamilyResultSigDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq FixityDirectionDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq ForeignDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq FunDepDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq GuardDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq InfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq InjectivityAnnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq InlineDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq LitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq LocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq MatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq ModNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq ModuleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq ModuleInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq NameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq NameFlavourDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq NameSpaceDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq NamespaceSpecifierDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq OccNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq OverlapDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq PatDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq PatSynArgsDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq PatSynDirDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq PhasesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq PkgNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq PragmaDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq RangeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq RoleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq RuleBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq RuleMatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq SafetyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq SpecificityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq StmtDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq TyLitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq TySynEqnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq TypeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq TypeFamilyHeadDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq LexemeDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.Read.LexEq NumberDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.Read.LexEq SomeCharDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsEq SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsEq SomeNatDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsEq BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq ModuleDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq TrNameDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq TyConDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeEq Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq HalfDefined in half-0.3.3 · Numeric.Half.InternalEq URIDefined in network-uri-2.6.4.2 · Network.URIEq URIAuthDefined in network-uri-2.6.4.2 · Network.URIEq TimeLocaleDefined in old-locale-1.0.0.7 · System.LocaleEq EncodingExceptionDefined in os-string-2.0.8 · System.OsString.Encoding.InternalEq OsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesByte equality of the internal representation.
Eq OsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesByte equality of the internal representation.
Eq PosixCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesEq PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesEq WindowsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesEq WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesEq MessageDefined in parsec-3.1.18.0 · Text.Parsec.ErrorEq ParseErrorDefined in parsec-3.1.18.0 · Text.Parsec.ErrorEq SourcePosDefined in parsec-3.1.18.0 · Text.Parsec.PosEq ModeDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq StyleDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq TextDetailsDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassEq DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJEq PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassEq CmdSpecDefined in process-1.6.26.1 · System.Process.CommonEq CreateProcessDefined in process-1.6.26.1 · System.Process.CommonEq StdStreamDefined in process-1.6.26.1 · System.Process.CommonEq CommunicationHandleDefined in process-1.6.26.1 · System.Process.CommunicationHandle.InternalEq CardinalityDefined in random-1.3.1 · System.Random.GFiniteEq StdGenDefined in random-1.3.1 · System.Random.InternalEq ScientificDefined in scientific-0.3.9.0 · Data.ScientificScientific numbers can be safely compared for equality. No magnitude
10^eis calculated so there's no risk of a blowup in space or time when comparing scientific numbers coming from untrusted sources.Eq TSemDefined in stm-2.5.3.1 · Control.Concurrent.STM.TSemEq UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorEq I8Defined in text-2.1.3 · Data.Text.ForeignEq TextDefined in text-2.1.3 · Data.Text · orphanEq BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderEq PartialUtf8CodePointDefined in text-2.1.3 · Data.Text.Internal.EncodingEq Utf8StateDefined in text-2.1.3 · Data.Text.Internal.EncodingEq DecoderStateDefined in text-2.1.3 · Data.Text.Internal.Encoding.Utf8Eq SizeDefined in text-2.1.3 · Data.Text.Internal.Fusion.SizeEq TextDefined in text-2.1.3 · Data.Text.Lazy · orphanEq BDefined in text-short-0.1.6.1 · Data.Text.Short.InternalEq ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalEq ConstructorInfoDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeEq ConstructorVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeEq DatatypeInfoDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeEq DatatypeVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeEq FieldStrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeEq StrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeEq UnpackednessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeEq CalendarDiffDaysDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDaysEq DayDefined in time-1.15 · Data.Time.Calendar.DaysEq MonthDefined in time-1.15 · Data.Time.Calendar.MonthEq QuarterDefined in time-1.15 · Data.Time.Calendar.QuarterEq QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.QuarterEq DayOfWeekDefined in time-1.15 · Data.Time.Calendar.WeekEq FirstWeekTypeDefined in time-1.15 · Data.Time.Calendar.WeekDateEq AbsoluteTimeDefined in time-1.15 · Data.Time.Clock.Internal.AbsoluteTimeEq DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeEq NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeEq SystemTimeDefined in time-1.15 · Data.Time.Clock.Internal.SystemTimeEq UTCTimeDefined in time-1.15 · Data.Time.Clock.Internal.UTCTimeEq UniversalTimeDefined in time-1.15 · Data.Time.Clock.Internal.UniversalTimeEq TimeLocaleDefined in time-1.15 · Data.Time.Format.LocaleEq WeekTypeDefined in time-1.15 · Data.Time.Format.Parse.InstancesEq CalendarDiffTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTimeEq LocalTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.LocalTimeEq TimeOfDayDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeOfDayEq TimeZoneDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeZoneEq DirTypeDefined in unix-2.8.8.0 · System.Posix.Directory.CommonEq AdviceDefined in unix-2.8.8.0 · System.Posix.FcntlEq CAttributesDefined in unix-2.8.8.0 · System.Posix.Files.CommonEq StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonEq StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonEq OpenFileFlagsDefined in unix-2.8.8.0 · System.Posix.IO.CommonEq OpenModeDefined in unix-2.8.8.0 · System.Posix.IO.CommonEq ProcessStatusDefined in unix-2.8.8.0 · System.Posix.Process.InternalsEq ResourceDefined in unix-2.8.8.0 · System.Posix.ResourceEq ResourceLimitDefined in unix-2.8.8.0 · System.Posix.ResourceEq ResourceLimitsDefined in unix-2.8.8.0 · System.Posix.ResourceEq BaudRateDefined in unix-2.8.8.0 · System.Posix.Terminal.CommonEq GroupEntryDefined in unix-2.8.8.0 · System.Posix.User.CommonEq UserEntryDefined in unix-2.8.8.0 · System.Posix.User.CommonEq SubHashPathDefined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugEq UUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalEq UnpackedUUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalEq SizeDefined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle.SizeEq ChecksDefined in vector-0.13.2.0 · Data.Vector.Internal.CheckEq ()Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq1 f => Eq (Fix f)Defined in data-fix-0.3.4 · Data.FixEq (Encoding' a)Defined in aeson-2.2.5.1 · Data.Aeson.Encoding.InternalEq (Async a)Defined in async-2.2.6 · Control.Concurrent.Async.InternalEq (Chan a)Defined in base-4.22.0.0 · Control.Concurrent.ChanEq (MutableByteArray s)Defined in base-4.22.0.0 · Data.Array.ByteEq (TVar a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncEq (ConstPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.ConstPtrEq (ForeignPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ForeignPtrEq (IORef a)Defined in ghc-internal-9.1401.0 · GHC.Internal.IORefPointer equality.
Eq (MVar a)Defined in ghc-internal-9.1401.0 · GHC.Internal.MVarCompares the underlying pointers.
Eq (FunPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrEq (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrEq (StablePtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.StableEq (StableName a)Defined in ghc-internal-9.1401.0 · GHC.Internal.StableNameEq (SChar c)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsEq (SSymbol s)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsEq (SNat n)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsEq (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq (Seed g)Defined in random-1.3.1 · System.Random.InternalEq (TBQueue a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TBQueueEq (TChan a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TChanEq (TMVar a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TMVarEq (TQueue a)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TQueueEq (TVar a)Defined in stm-2.5.3.1 · Control.Sequential.STMEq a => Eq (Blind a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (Negative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (NonEmptyList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (NonNegative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (NonPositive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (NonZero a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (OrderedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (Positive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (SortedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEq a => Eq (IResult a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalEq a => Eq (Result a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalEq a => Eq (Complex a)Defined in base-4.22.0.0 · Data.ComplexEq a => Eq (First a)Defined in base-4.22.0.0 · Data.SemigroupEq a => Eq (Last a)Defined in base-4.22.0.0 · Data.SemigroupEq a => Eq (Max a)Defined in base-4.22.0.0 · Data.SemigroupEq a => Eq (Min a)Defined in base-4.22.0.0 · Data.SemigroupEq a => Eq (IntMap a)Defined in containers-0.8 · Data.IntMap.InternalEq a => Eq (Seq a)Defined in containers-0.8 · Data.Sequence.InternalEq a => Eq (ViewL a)Defined in containers-0.8 · Data.Sequence.InternalEq a => Eq (ViewR a)Defined in containers-0.8 · Data.Sequence.InternalEq a => Eq (Intersection a)Defined in containers-0.8 · Data.Set.InternalEq a => Eq (Set a)Defined in containers-0.8 · Data.Set.InternalEq a => Eq (PostOrder a)Defined in containers-0.8 · Data.TreeEq a => Eq (Tree a)Defined in containers-0.8 · Data.TreeEq a => Eq (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalEq a => Eq (DList a)Defined in dlist-1.0 · Data.DList.InternalEq a => Eq (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesEq a => Eq (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesEq a => Eq (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseEq a => Eq (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityEq a => Eq (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidEq a => Eq (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidEq a => Eq (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdEq a => Eq (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq a => Eq (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListEq a => Eq (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.MaybeEq a => Eq (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealEq a => Eq (Hashed a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassUses precomputed hash to detect inequality faster
Eq a => Eq (AnnotDetails a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq a => Eq (Span a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJEq a => Eq (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayEq a => Eq (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayEq a => Eq (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeEq a => Eq (Stream a)Defined in text-2.1.3 · Data.Text.Internal.Fusion.TypesEq a => Eq (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalNote that, in the presence of hash collisions, equal
HashSets may behave differently, i.e. extensionality may be violated:Example2 expressions data D = A | B deriving (Eq, Show)instance Hashable D where hashWithSalt salt _d = salt
Example2 expressions x = fromList [A, B]y = fromList [B, A]
Example3 expressions x == yTruetoList x[A,B]toList y[B,A]
In general, the lack of extensionality can be observed with any function that depends on the key ordering, such as folds and traversals.
Eq a => Eq (Vector a)Defined in vector-0.13.2.0 · Data.VectorEq a => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictEq a => Eq (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq a => Eq [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq flag => Eq (TyVarBndr flag)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxEq g => Eq (StateGen g)Defined in random-1.3.1 · System.Random.InternalEq g => Eq (AtomicGen g)Defined in random-1.3.1 · System.Random.StatefulEq g => Eq (IOGen g)Defined in random-1.3.1 · System.Random.StatefulEq g => Eq (STGen g)Defined in random-1.3.1 · System.Random.StatefulEq g => Eq (TGen g)Defined in random-1.3.1 · System.Random.StatefulEq k => Eq (Error k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugEq k => Eq (Validity k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugEq m => Eq (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupEq p => Eq (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq v => Eq (KeyMap v)Defined in aeson-2.2.5.1 · Data.Aeson.KeyMapEq vertex => Eq (SCC vertex)Defined in containers-0.8 · Data.Graph(Functor f, Eq1 f) => Eq (Mu f)Defined in data-fix-0.3.4 · Data.Fix(Functor f, Eq1 f) => Eq (Nu f)Defined in data-fix-0.3.4 · Data.Fix(Eq a, Prim a) => Eq (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArray(Storable a, Eq a) => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Storable(Prim a, Eq a) => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Primitive(Unbox a, Eq a) => Eq (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphanEq (IOUArray i e)Defined in array-0.5.8.0 · Data.Array.IO.InternalsEq (Fixed a)Defined in base-4.22.0.0 · Data.FixedEq (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyEq (TypeRep a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalEq (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (IOArray i e)Defined in ghc-internal-9.1401.0 · GHC.Internal.IOArrayEq (STRef s a)Defined in ghc-internal-9.1401.0 · GHC.Internal.STRefPointer equality.
Eq (MutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayEq (MVar s a)Defined in primitive-0.9.1.0 · Data.Primitive.MVarEq (MutVar s a)Defined in primitive-0.9.1.0 · Data.Primitive.MutVarEq (MutablePrimArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayEq (PrimVar s a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimVarEq (SmallMutableArray s a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayEq (f a) => Eq (Zippy f a)Defined in semialign-1.4 · Data.ZipEq a => Eq (Arg a b)Defined in base-4.22.0.0 · Data.Semigroup(Eq1 f, Eq a) => Eq (Lift f a)Defined in transformers-0.6.1.2 · Control.Applicative.Lift(Eq1 m, Eq a) => Eq (MaybeT m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Maybe(Eq a, Eq b) => Eq (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Eq a, Eq b) => Eq (Either a b)Defined in strict-0.5.1 · Data.Strict.Either(Eq a, Eq b) => Eq (These a b)Defined in strict-0.5.1 · Data.Strict.These(Eq a, Eq b) => Eq (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(Eq a, Eq b) => Eq (These a b)Defined in these-1.2.1 · Data.These(Eq a, Eq b) => Eq (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq i, Eq e) => Eq (TArray i e)Defined in stm-2.5.3.1 · Control.Concurrent.STM.TArray(Eq k, Eq a) => Eq (Map k a)Defined in containers-0.8 · Data.Map.Internal(Eq k, Eq e) => Eq (TkArray k e)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.Tokens(Eq k, Eq e) => Eq (TkRecord k e)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.Tokens(Eq k, Eq e) => Eq (Tokens k e)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.Tokens(Eq k, Eq v) => Eq (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalNote that, in the presence of hash collisions, equal
HashMaps may behave differently, i.e. extensionality may be violated:Example2 expressions data D = A | B deriving (Eq, Show)instance Hashable D where hashWithSalt salt _d = salt
Example2 expressions x = fromList [(A,1), (B,2)]y = fromList [(B,2), (A,1)]
Example3 expressions x == yTruetoList x[(A,1),(B,2)]toList y[(B,2),(A,1)]
In general, the lack of extensionality can be observed with any function that depends on the key ordering, such as folds and traversals.
(Eq k, Eq v) => Eq (Leaf k v)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(Ix i, Eq e) => Eq (Array i e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Arr(Ix ix, Eq e, IArray UArray e) => Eq (UArray ix e)Defined in array-0.5.8.0 · Data.Array.Base(GEq (Rep1 f a), Generic1 f) => Eq (FunctorClassesDefault f a)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalEq (STUArray s i e)Defined in array-0.5.8.0 · Data.Array.BaseEq (STArray s i e)Defined in ghc-internal-9.1401.0 · GHC.Internal.ArrEq (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionEq (OrderingI a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.OrdEq (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityEq (bi a b) => Eq (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapEq (f a) => Eq (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidEq (f a) => Eq (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq (f p) => Eq (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (p (Fix p a) a) => Eq (Fix p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixEq (p a a) => Eq (Join p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinEq a => Eq (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstEq a => Eq (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.ConstantEq a => Eq (Bundle Id v a)Defined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle · orphanEq b => Eq (Tagged s b)Defined in tagged-0.8.11 · Data.Tagged(Eq1 f, Eq a) => Eq (Backwards f a)Defined in transformers-0.6.1.2 · Control.Applicative.Backwards(Eq1 f, Eq a) => Eq (IdentityT f a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Identity(Eq1 f, Eq a) => Eq (Reverse f a)Defined in transformers-0.6.1.2 · Data.Functor.Reverse(Eq (f a), Eq (g a), Eq a) => Eq (These1 f g a)Defined in these-1.2.1 · Data.Functor.These(Eq a, Eq b, Eq c) => Eq (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq e, Eq1 m, Eq a) => Eq (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Eq w, Eq1 m, Eq a) => Eq (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Eq w, Eq1 m, Eq a) => Eq (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Strict(Generic1 f, Eq (Rep1 f a)) => Eq (Generically1 f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityEq c => Eq (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Eq (f a), Eq (g a)) => Eq (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product(Eq (f a), Eq (g a)) => Eq (Sum f g a)Defined in base-4.22.0.0 · Data.Functor.Sum(Eq (f p), Eq (g p)) => Eq ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Eq (f p), Eq (g p)) => Eq ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq (f (g a)) => Eq (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeEq (f (g p)) => Eq ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (f a) => Eq (Clown f a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownEq (f p) => Eq (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (g b) => Eq (Joker g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerEq (p a b) => Eq (WrappedBifunctor p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedEq (p b a) => Eq (Flip p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Flip(Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq (f a b), Eq (g a b)) => Eq (Product f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Eq (p a b), Eq (q a b)) => Eq (Sum p q a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Sum(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => Eq (a, b, c, d, e, f)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq (f (p a b)) => Eq (Tannen f p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g) => Eq (a, b, c, d, e, f, g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h) => Eq (a, b, c, d, e, f, g, h)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesEq (p (f a) (g b)) => Eq (Biff p f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i) => Eq (a, b, c, d, e, f, g, h, i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j) => Eq (a, b, c, d, e, f, g, h, i, j)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k) => Eq (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l) => Eq (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes
The Ord class is used for totally ordered datatypes.
Instances of Ord can be derived for any user-defined datatype whose constituent types are in Ord. The declared order of the constructors in the data declaration determines the ordering in derived Ord instances. The Ordering datatype allows a single comparison to determine the precise ordering of two objects.
Ord, as defined by the Haskell report, implements a total order and has the following properties:
- Comparability
x <= y || y <= x=
- Transitivity
if
x <= y && y <= z=
, then
x <= z=
- Reflexivity
x <= x=
- Antisymmetry
if
x <= y && y <= x=
, then
x == y=
The following operator interactions are expected to hold:
x >= y=y <= xx < y=x <= y && x /= yx > y=y < xx < y=compare x y == LTx > y=compare x y == GTx == y=compare x y == EQmin x y == if x <= y then x else y= Truemax x y == if x >= y then x else y= True
Note that (7.) and (8.) do not require min and max to return either of
their arguments. The result is merely required to equal one of the
arguments in terms of (==). Users who expect a stronger guarantee are advised
to write their own min and/or max functions.
The nuance of the above distinction is not always fully internalized by
developers, and in the past (tracing back to the Haskell 1.4 Report) the
specification for Ord asserted the stronger property that (min x y, max x
y) = (x, y) or (y, x), or in other words, that min and max will
return one of their arguments, using argument order as the tie-breaker if
the arguments are equal by comparison. A few list and
Foldable functions have behavior that is best understood
with this assumption in mind: all variations of minimumBy and maximumBy
(which can't use min and max in their implementations) are written such
that minimumBy compare and maximumBy compare are respectively
equivalent to minimum and maximum (which do use min and max) only if
min and max adhere to this tie-breaking convention. Otherwise, if there
are multiple least or largest elements in a container, minimum and
maximum may not return the same one that minimumBy compare and
maximumBy compare do (though they should return something that is
equal). (This is relevant for types with non-extensional equality, like
Arg, but also in cases where the precise reference held
matters for memory-management reasons.) Unless there is a reason to deviate,
it is less confusing for implementors of Ord to respect this same
convention (as the default definitions of min and max do).
Minimal complete definition: either compare or <=. Using compare can be more efficient for complex types.
Instances412Ord, …
Ord ASCIIStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd PrintableStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd UnicodeStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd OrdADefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyOrd OrdBDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyOrd OrdCDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyOrd KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeyOrd ArityDefined in aeson-2.2.5.1 · Data.Aeson.THOrd DotNetTimeDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalOrd JSONPathElementDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalOrd ValueDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalThe ordering is total, consistent with Eq instance. However, nothing else about the ordering is specified, and it may change from environment to environment and version to version of either this package or its dependencies (
hashableand 'unordered-containers').Ord ByteArrayDefined in base-4.22.0.0 · Data.Array.ByteNon-lexicographic ordering. This compares the lengths of the byte arrays first and uses a lexicographic ordering if the lengths are equal. Subject to change between major versions.
Ord OptionsDefined in bifunctors-5.6.3 · Data.Bifunctor.THOrd ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeOrd ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalOrd ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalLexicographic order.
Ord Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesOrd JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesOrd JSValueDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesOrd ByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArrayOrd SlicedByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArray.SlicedOrd TokenTypeDefined in cborg-0.2.10.0 · Codec.CBOR.DecodingOrd TermTokenDefined in cborg-0.2.10.0 · Codec.CBOR.FlatTermOrd TermDefined in cborg-0.2.10.0 · Codec.CBOR.TermOrd TimeSpecDefined in clock-0.8.4 · System.ClockOrd SecondsDefined in clock-0.8.4 · System.Clock.SecondsOrd IntSetDefined in containers-0.8 · Data.IntSet.InternalOrd IntersectionDefined in containers-0.8 · Data.IntSet.InternalOrd FileTypeDefined in directory-1.3.10.0 · System.Directory.Internal.CommonOrd PermissionsDefined in directory-1.3.10.0 · System.Directory.Internal.CommonOrd XdgDirectoryDefined in directory-1.3.10.0 · System.Directory.Internal.CommonOrd XdgDirectoryListDefined in directory-1.3.10.0 · System.Directory.Internal.CommonOrd VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseOrd BigNatDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.BigNatOrd IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.IntegerOrd NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.NaturalOrd ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderOrd ClosureTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.ClosureTypesOrd BlockReasonDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncOrd ThreadIdDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncOrd ThreadStatusDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncOrd AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd SomeTypeRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalOrd UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.UniqueOrd VersionDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.VersionOrd TimeoutKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.TimeOutOrd UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.UniqueOrd ErrorCallDefined in ghc-internal-9.1401.0 · GHC.Internal.ExceptionOrd ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeOrd FingerprintDefined in ghc-internal-9.1401.0 · GHC.Internal.Fingerprint.TypeOrd CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrOrd WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrOrd AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd PrimTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd TsoFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd WhatNextDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd WhyBlockedDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesOrd CostCentreDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd CostCentreStackDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd IndexTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd StgTSOProfInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd SeekModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.DeviceOrd ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd BufferModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesOrd NewlineDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesOrd NewlineModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesOrd IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeOrd Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd ExtensionDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensionsOrd ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsOrd WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsOrd ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfOrd WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfOrd CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CTimerDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd AnnLookupDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd AnnTargetDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BangDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BndrVisDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BodyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BytesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd CallconvDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ConDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DecDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DerivClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DerivStrategyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DocLocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ExpDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FamilyResultSigDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FixityDirectionDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ForeignDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FunDepDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd GuardDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd InfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd InjectivityAnnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd InlineDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd LitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd LocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd MatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ModNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ModuleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ModuleInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NameFlavourDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NameSpaceDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NamespaceSpecifierDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd OccNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd OverlapDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PatDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PatSynArgsDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PatSynDirDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PhasesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PkgNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PragmaDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RangeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RoleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RuleBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RuleMatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SafetyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SpecificityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd StmtDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TyLitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TySynEqnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TypeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TypeFamilyHeadDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SomeCharDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd SomeNatDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsOrd BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesIEEE 754 Double-precision type includes not only numbers, but also positive and negative infinities and a special element called
NaN(which can be quiet or signal).IEEE 754-2008, section 5.11 requires that if at least one of arguments of <=, <, >, >= is
NaNthen the result of the comparison is False, andinstanceOrd Double complies with this requirement. This violates the reflexivity: bothNaN<=NaNandNaN>=NaNare False.IEEE 754-2008, section 5.10 defines
totalOrderpredicate. Unfortunately, compare on Doubles violates the IEEE standard and does not define a total order. More specifically, both compareNaNxand comparexNaNalways return GT.Thus, users must be extremely cautious when using
instanceOrd Double. For instance, one should avoid ordered containers with keys represented by Double, because data loss and corruption may happen. An IEEE-compliant compare is available infp-ieeepackage asTotallyOrderednewtype.Moving further, the behaviour of min and max with regards to
NaNis also non-compliant. IEEE 754-2008, section 5.3.1 defines that quietNaNshould be treated as a missing data byminNumandmaxNumfunctions, for example,minNum(NaN, 1) = minNum(1, NaN) = 1. Some languages such as Java deviate from the standard implementingminNum(NaN, 1) = minNum(1, NaN) = NaN. However, min / max inbaseare even worse: minNaN1 is 1, but min 1NaNisNaN.IEEE 754-2008 compliant min / max can be found in
ieee754package underminNum/maxNumnames. Implementations compliant withminimumNumber/maximumNumberfrom a newer IEEE 754-2019, section 9.6 are available fromfp-ieeepackage.Ord FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd TyConDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeOrd Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd HalfDefined in half-0.3.3 · Numeric.Half.InternalOrd URIDefined in network-uri-2.6.4.2 · Network.URIOrd URIAuthDefined in network-uri-2.6.4.2 · Network.URIOrd TimeLocaleDefined in old-locale-1.0.0.7 · System.LocaleOrd OsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesByte ordering of the internal representation.
Ord OsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesByte ordering of the internal representation.
Ord PosixCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesOrd PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesOrd WindowsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesOrd WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesOrd MessageDefined in parsec-3.1.18.0 · Text.Parsec.ErrorOrd SourcePosDefined in parsec-3.1.18.0 · Text.Parsec.PosOrd PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassOrd PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassOrd CommunicationHandleDefined in process-1.6.26.1 · System.Process.CommunicationHandle.InternalOrd CardinalityDefined in random-1.3.1 · System.Random.GFiniteOrd ScientificDefined in scientific-0.3.9.0 · Data.ScientificScientific numbers can be safely compared for ordering. No magnitude
10^eis calculated so there's no risk of a blowup in space or time when comparing scientific numbers coming from untrusted sources.Ord I8Defined in text-2.1.3 · Data.Text.ForeignOrd TextDefined in text-2.1.3 · Data.Text · orphanOrd BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderOrd TextDefined in text-2.1.3 · Data.Text.Lazy · orphanOrd BDefined in text-short-0.1.6.1 · Data.Text.Short.InternalOrd ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalOrd ConstructorVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeOrd DatatypeVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeOrd FieldStrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeOrd StrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeOrd UnpackednessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeOrd DayDefined in time-1.15 · Data.Time.Calendar.DaysOrd MonthDefined in time-1.15 · Data.Time.Calendar.MonthOrd QuarterDefined in time-1.15 · Data.Time.Calendar.QuarterOrd QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.QuarterOrd DayOfWeekDefined in time-1.15 · Data.Time.Calendar.WeekOrd AbsoluteTimeDefined in time-1.15 · Data.Time.Clock.Internal.AbsoluteTimeOrd DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeOrd NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeOrd SystemTimeDefined in time-1.15 · Data.Time.Clock.Internal.SystemTimeOrd UTCTimeDefined in time-1.15 · Data.Time.Clock.Internal.UTCTimeOrd UniversalTimeDefined in time-1.15 · Data.Time.Clock.Internal.UniversalTimeOrd TimeLocaleDefined in time-1.15 · Data.Time.Format.LocaleOrd LocalTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.LocalTimeOrd TimeOfDayDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeOfDayOrd TimeZoneDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeZoneOrd DirTypeDefined in unix-2.8.8.0 · System.Posix.Directory.CommonOrd CAttributesDefined in unix-2.8.8.0 · System.Posix.Files.CommonOrd StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonOrd StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonOrd OpenFileFlagsDefined in unix-2.8.8.0 · System.Posix.IO.CommonOrd OpenModeDefined in unix-2.8.8.0 · System.Posix.IO.CommonOrd ProcessStatusDefined in unix-2.8.8.0 · System.Posix.Process.InternalsOrd BaudRateDefined in unix-2.8.8.0 · System.Posix.Terminal.CommonOrd UUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalOrd UnpackedUUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalOrd ()Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd1 f => Ord (Fix f)Defined in data-fix-0.3.4 · Data.FixOrd (Encoding' a)Defined in aeson-2.2.5.1 · Data.Aeson.Encoding.InternalOrd (Async a)Defined in async-2.2.6 · Control.Concurrent.Async.InternalOrd (ConstPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.ConstPtrOrd (ForeignPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ForeignPtrOrd (FunPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrOrd (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrOrd (SChar c)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd (SSymbol s)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd (SNat n)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsOrd (Seed g)Defined in random-1.3.1 · System.Random.InternalOrd a => Ord (Blind a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (Negative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (NonEmptyList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (NonNegative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (NonPositive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (NonZero a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (OrderedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (Positive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (SortedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersOrd a => Ord (First a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (Last a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (Max a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (Min a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (IntMap a)Defined in containers-0.8 · Data.IntMap.InternalOrd a => Ord (Seq a)Defined in containers-0.8 · Data.Sequence.InternalOrd a => Ord (ViewL a)Defined in containers-0.8 · Data.Sequence.InternalOrd a => Ord (ViewR a)Defined in containers-0.8 · Data.Sequence.InternalOrd a => Ord (Intersection a)Defined in containers-0.8 · Data.Set.InternalOrd a => Ord (Set a)Defined in containers-0.8 · Data.Set.InternalOrd a => Ord (PostOrder a)Defined in containers-0.8 · Data.TreeOrd a => Ord (Tree a)Defined in containers-0.8 · Data.TreeOrd a => Ord (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalOrd a => Ord (DList a)Defined in dlist-1.0 · Data.DList.InternalOrd a => Ord (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesOrd a => Ord (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesOrd a => Ord (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseOrd a => Ord (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityOrd a => Ord (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidOrd a => Ord (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidOrd a => Ord (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdOrd a => Ord (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListOrd a => Ord (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.MaybeOrd a => Ord (Hashed a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassOrd a => Ord (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayLexicographic ordering. Subject to change between major versions.
Ord a => Ord (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayLexicographic ordering. Subject to change between major versions.
Ord a => Ord (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeOrd a => Ord (Stream a)Defined in text-2.1.3 · Data.Text.Internal.Fusion.TypesOrd a => Ord (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalOrd a => Ord (Vector a)Defined in vector-0.13.2.0 · Data.VectorOrd a => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictOrd a => Ord (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd a => Ord [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd flag => Ord (TyVarBndr flag)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd g => Ord (StateGen g)Defined in random-1.3.1 · System.Random.InternalOrd g => Ord (AtomicGen g)Defined in random-1.3.1 · System.Random.StatefulOrd g => Ord (IOGen g)Defined in random-1.3.1 · System.Random.StatefulOrd g => Ord (STGen g)Defined in random-1.3.1 · System.Random.StatefulOrd g => Ord (TGen g)Defined in random-1.3.1 · System.Random.StatefulOrd m => Ord (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupOrd p => Ord (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd v => Ord (KeyMap v)Defined in aeson-2.2.5.1 · Data.Aeson.KeyMapIntegral a => Ord (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Real(Functor f, Ord1 f) => Ord (Mu f)Defined in data-fix-0.3.4 · Data.Fix(Functor f, Ord1 f) => Ord (Nu f)Defined in data-fix-0.3.4 · Data.Fix(Ord a, Prim a) => Ord (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayLexicographic ordering. Subject to change between major versions.
(Storable a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Storable(Prim a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Primitive(Unbox a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphanOrd (Fixed a)Defined in base-4.22.0.0 · Data.FixedOrd (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyOrd (TypeRep a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalOrd (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (f a) => Ord (Zippy f a)Defined in semialign-1.4 · Data.ZipOrd a => Ord (Arg a b)Defined in base-4.22.0.0 · Data.Semigroup(Ord1 f, Ord a) => Ord (Lift f a)Defined in transformers-0.6.1.2 · Control.Applicative.Lift(Ord1 m, Ord a) => Ord (MaybeT m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Maybe(Ord a, Ord b) => Ord (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Ord a, Ord b) => Ord (Either a b)Defined in strict-0.5.1 · Data.Strict.Either(Ord a, Ord b) => Ord (These a b)Defined in strict-0.5.1 · Data.Strict.These(Ord a, Ord b) => Ord (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(Ord a, Ord b) => Ord (These a b)Defined in these-1.2.1 · Data.These(Ord a, Ord b) => Ord (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord k, Ord v) => Ord (Map k v)Defined in containers-0.8 · Data.Map.Internal(Ord k, Ord v) => Ord (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalThe ordering is total and consistent with the Eq instance. However, nothing else about the ordering is specified, and it may change from version to version of either this package or of
hashable.(Ix i, Ord e) => Ord (Array i e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Arr(Ix ix, Ord e, IArray UArray e) => Ord (UArray ix e)Defined in array-0.5.8.0 · Data.Array.Base(GOrd (Rep1 f a), Generic1 f) => Ord (FunctorClassesDefault f a)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionOrd (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityOrd (bi a b) => Ord (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapOrd (f a) => Ord (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidOrd (f a) => Ord (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd (f p) => Ord (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (p (Fix p a) a) => Ord (Fix p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixOrd (p a a) => Ord (Join p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinOrd a => Ord (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstOrd a => Ord (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.ConstantOrd a => Ord (Bundle Id v a)Defined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle · orphanOrd b => Ord (Tagged s b)Defined in tagged-0.8.11 · Data.Tagged(Ord1 f, Ord a) => Ord (Backwards f a)Defined in transformers-0.6.1.2 · Control.Applicative.Backwards(Ord1 f, Ord a) => Ord (IdentityT f a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Identity(Ord1 f, Ord a) => Ord (Reverse f a)Defined in transformers-0.6.1.2 · Data.Functor.Reverse(Ord (f a), Ord (g a), Ord a) => Ord (These1 f g a)Defined in these-1.2.1 · Data.Functor.These(Ord a, Ord b, Ord c) => Ord (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord e, Ord1 m, Ord a) => Ord (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Ord w, Ord1 m, Ord a) => Ord (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Ord w, Ord1 m, Ord a) => Ord (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Strict(Generic1 f, Ord (Rep1 f a)) => Ord (Generically1 f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityOrd c => Ord (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Ord (f a), Ord (g a)) => Ord (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product(Ord (f a), Ord (g a)) => Ord (Sum f g a)Defined in base-4.22.0.0 · Data.Functor.Sum(Ord (f p), Ord (g p)) => Ord ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Ord (f p), Ord (g p)) => Ord ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd (f (g a)) => Ord (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeOrd (f (g p)) => Ord ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (f a) => Ord (Clown f a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownOrd (f p) => Ord (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (g b) => Ord (Joker g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerOrd (p a b) => Ord (WrappedBifunctor p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedOrd (p b a) => Ord (Flip p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Flip(Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord (f a b), Ord (g a b)) => Ord (Product f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Ord (p a b), Ord (q a b)) => Ord (Sum p q a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Sum(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f) => Ord (a, b, c, d, e, f)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd (f (p a b)) => Ord (Tannen f p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g) => Ord (a, b, c, d, e, f, g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h) => Ord (a, b, c, d, e, f, g, h)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd (p (f a) (g b)) => Ord (Biff p f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i) => Ord (a, b, c, d, e, f, g, h, i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j) => Ord (a, b, c, d, e, f, g, h, i, j)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k) => Ord (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l) => Ord (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m, Ord n) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m, Ord n, Ord o) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes
A monad supporting atomic memory transactions.
Instances17Monad, Functor, MonadFix, Applicative, Alternative, MonadPlus, …
Monad STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncFunctor STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncMonadFix STMDefined in stm-2.5.3.1 · Control.Monad.STM · orphanApplicative STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncAlternative STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncMonadPlus STMDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncMonadCatch STMDefined in exceptions-0.10.11 · Control.Monad.CatchMonadThrow STMDefined in exceptions-0.10.11 · Control.Monad.CatchMArray TArray e STMDefined in stm-2.5.3.1 · Control.Concurrent.STM.TArraySemigroup a => Semigroup (STM a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncMonoid a => Monoid (STM a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncRandomGen g => StatefulGen (TGenM g) STMDefined in random-1.3.1 · System.Random.StatefulRandomGen g => FrozenGen (TGen g) STMDefined in random-1.3.1 · System.Random.StatefulRandomGen g => ThawedGen (TGen g) STMDefined in random-1.3.1 · System.Random.StatefulHasGetter (STM a) aDefined in StateVar-1.2.2 · Data.StateVarRandomGen r => RandomGenM (TGenM r) r STMDefined in random-1.3.1 · System.Random.Statefultype MutableGen (TGen g) STM = TGenM gDefined in random-1.3.1 · System.Random.Stateful
A ThreadId is an abstract type representing a handle to a thread. ThreadId is an instance of Eq, Ord and Show, where the Ord instance implements an arbitrary total ordering over ThreadIds. The Show instance lets you convert an arbitrary-valued ThreadId to string form; showing a ThreadId value is occasionally useful when debugging or diagnosing the behaviour of a concurrent program.
Note: in GHC, if you have a ThreadId, you essentially have a pointer to the thread itself. This means the thread itself can't be garbage collected until you drop the ThreadId. This misfeature would be difficult to correct while continuing to support threadStatus.
Instances5Eq, Ord, Show, NFData, Hashable
Eq ThreadIdDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncOrd ThreadIdDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncShow ThreadIdDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncNFData ThreadIdDefined in deepseq-1.5.1.0 · Control.DeepSeqHashable ThreadIdDefined in hashable-1.5.1.0 · Data.Hashable.Class
A class for categories.
In mathematics, a category is defined as a collection of objects and a collection
of morphisms between objects, together with an identity morphism id for every
object and an operation (.) that composes compatible morphisms.
This class is defined in an analogous way. The collection of morphisms is represented
by a type parameter cat, which has kind k -> k -> Type for some kind variable k
that represents the collection of objects; most of the time the choice of k will be
Type.
Examples
As the method names suggest, there's a category of functions:
instance Category (->) where
id = \x -> x
f . g = \x -> f (g x)
Isomorphisms form a category as well:
data Iso a b = Iso (a -> b) (b -> a)
instance Category Iso where
id = Iso id id
Iso f1 g1 . Iso f2 g2 = Iso (f1 . f2) (g2 . g1)
Natural transformations are another important example:
newtype f ~> g = NatTransform (forall x. f x -> g x)
instance Category (~>) where
id = NatTransform id
NatTransform f . NatTransform g = NatTransform (f . g)
Using the TypeData language extension, we can also make a category where k isn't
Type, but a custom kind Door instead:
type data Door = DoorOpen | DoorClosed
data Action (before :: Door) (after :: Door) where
DoNothing :: Action door door
OpenDoor :: Action start DoorClosed -> Action start DoorOpen
CloseDoor :: Action start DoorOpen -> Action start DoorClosed
instance Category Action where
id = DoNothing
DoNothing . action = action
OpenDoor rest . action = OpenDoor (rest . action)
CloseDoor rest . action = CloseDoor (rest . action)
Methods
(.) :: cat b c -> cat a b -> cat a cinfixr 9
Instances20Category, …
Category OpDefined in base-4.22.0.0 · Data.Functor.ContravariantCategory FormatDefined in formatting-7.2.0 · Formatting.InternalThe same as (%). At present using Category has an import overhead, but one day it might be imported as standard.
Applicative f => Category (Static f)Defined in semigroupoids-6.0.2 · Data.Semigroupoid.StaticMonad m => Category (Kleisli m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowCategory CoercionDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategoryCategory (:~:)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategorySemigroupoid s => Category (Categorical s)Defined in semigroupoids-6.0.2 · Data.Semigroupoid.Categorical(Applicative f, Monad f) => Category (WhenMissing f)Defined in containers-0.8 · Data.IntMap.InternalComonad w => Category (Cokleisli w)Defined in comonad-5.0.10 · Control.ComonadCategory (:~~:)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategoryCategory (->)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategoryCategory k2 => Category (Iso k2)Defined in semigroupoids-6.0.2 · Data.Isomorphism(Applicative f, Monad f) => Category (WhenMissing f k)Defined in containers-0.8 · Data.Map.Internal(Monad f, Applicative f) => Category (WhenMatched f x)Defined in containers-0.8 · Data.IntMap.InternalMonoid m => Category (Semi m)Defined in semigroupoids-6.0.2 · Data.SemigroupoidCategory k2 => Category (WrappedCategory k2)Defined in semigroupoids-6.0.2 · Data.SemigroupoidCategory k2 => Category (Dual k2)Defined in semigroupoids-6.0.2 · Data.Semigroupoid.Dual(Monad f, Applicative f) => Category (WhenMatched f k x)Defined in containers-0.8 · Data.Map.Internal(Category p, Category q) => Category (Product p q)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Applicative f, Category p) => Category (Tannen f p)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen
Thrown when the program attempts to call atomically, from the stm
package, inside another call to atomically.
Instances2Show, Exception
Show NestedAtomicallyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException NestedAtomicallyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.Base
A class method without a definition (neither a default definition,
nor a definition in the appropriate instance) was called. The
String gives information about which method it was.
Constructors
Instances2Show, Exception
Show NoMethodErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException NoMethodErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.Base
Thrown when the runtime system detects that the computation is guaranteed not to terminate. Note that there is no guarantee that the runtime system will notice whether any given computation is guaranteed to terminate or not.
Instances2Show, Exception
Show NonTerminationDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException NonTerminationDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.Base
A pattern match failed. The String gives information about the
source location of the pattern.
Constructors
Instances2Show, Exception
Show PatternMatchFailDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException PatternMatchFailDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.Base
An uninitialised record field was used. The String gives
information about the source location where the record was
constructed.
Constructors
Instances2Show, Exception
Show RecConErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException RecConErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.Base
A record selector was applied to a constructor without the
appropriate field. This can only happen with a datatype with
multiple constructors, where some fields are in one constructor
but not another. The String gives information about the source
location of the record selector.
Constructors
Instances2Show, Exception
Show RecSelErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException RecSelErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.Base
A record update was performed on a constructor without the
appropriate field. This can only happen with a datatype with
multiple constructors, where some fields are in one constructor
but not another. The String gives information about the source
location of the record update.
Constructors
Instances2Show, Exception
Show RecUpdErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException RecUpdErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.Base
An expression that didn't typecheck during compile time was called.
This is only possible with -fdefer-type-errors. The String gives
details about the failed type check.
When a value is bound in do-notation, the pattern on the left
hand side of <- might not match. In this case, this class
provides a function to recover.
A Monad without a MonadFail instance may only be used in conjunction
with pattern that always match, such as newtypes, tuples, data types with
only a single data constructor, and irrefutable patterns (~pat).
Instances of MonadFail should satisfy the following law: fail s should
be a left zero for >>=,
fail s >>= f = fail s
If your Monad is also MonadPlus, a popular definition is
fail _ = mzero
fail s should be an action that runs in the monad itself, not an
exception (except in instances of MonadIO). In particular,
fail should not be implemented in terms of error.
Instances41MonadFail, …
MonadFail IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonadFail ParserDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonadFail ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalMonadFail GetDefined in binary-0.8.9.3 · Data.Binary.Get.InternalMonadFail PPDefined in cborg-0.2.10.0 · Codec.CBOR.PrettyMonadFail DListDefined in dlist-1.0 · Data.DList.InternalMonadFail MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FailMonadFail QDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxMonadFail PDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPMonadFail ReadPDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPMonadFail ReadPrecDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.ParserCombinators.ReadPrecMonadFail IODefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FailMonadFail ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayMonadFail SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayMonadFail VectorDefined in vector-0.13.2.0 · Data.VectorMonadFail VectorDefined in vector-0.13.2.0 · Data.Vector.StrictMonadFail []Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FailMonad m => MonadFail (PropertyM m)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonadicMonad m => MonadFail (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonad m => MonadFail (QuoteToQuasi m)Defined in th-compat-0.1.7 · Language.Haskell.TH.Syntax.CompatMonad m => MonadFail (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeMonadFail (Decoder s)Defined in cborg-0.2.10.0 · Codec.CBOR.DecodingMonadFail (bi a) => MonadFail (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapMonadFail f => MonadFail (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonadFail m => MonadFail (StateT s m)Defined in microlens-0.4.14.0 · Lens.MicroMonadFail m => MonadFail (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadFail m => MonadFail (IdentityT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityMonadFail m => MonadFail (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadFail m => MonadFail (SelectT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.SelectMonadFail m => MonadFail (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadFail m => MonadFail (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.StrictMonadFail m => MonadFail (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPSMonadFail m => MonadFail (Reverse m)Defined in transformers-0.6.1.2 · Data.Functor.Reverse(Monoid w, MonadFail m) => MonadFail (AccumT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Accum(Monoid w, MonadFail m) => MonadFail (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadFail m) => MonadFail (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictMonadFail (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.PrimMonadFail m => MonadFail (ContT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ContMonadFail m => MonadFail (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPS(Monoid w, MonadFail m) => MonadFail (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadFail m) => MonadFail (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict
Monads in which IO computations may be embedded. Any monad built by applying a sequence of monad transformers to the IO monad will be an instance of this class.
Instances should satisfy the following laws, which state that liftIO is a transformer of monads:
Methods
liftIO :: IO a -> m aLift a computation from the IO monad. This allows us to run IO computations in any monadic stack, so long as it supports these kinds of operations (i.e. IO is the base monad for the stack).
Example
import Control.Monad.Trans.State -- from the "transformers" library printState :: Show s => StateT s IO () printState = do state <- get liftIO $ print stateHad we omitted
liftIO, we would have ended up with this error:• Couldn't match type ‘IO’ with ‘StateT s IO’ Expected type: StateT s IO () Actual type: IO ()The important part here is the mismatch between
StateT s IO ()andIO ().Luckily, we know of a function that takes an
IO aand returns an(m a):liftIO, enabling us to run the program and see the expected results:> evalStateT printState "hello" "hello" > evalStateT printState 3 3
Instances21MonadIO, …
MonadIO QDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxMonadIO IODefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.IO.ClassMonad m => MonadIO (QuoteToQuasi m)Defined in th-compat-0.1.7 · Language.Haskell.TH.Syntax.CompatMonadIO m => MonadIO (PropertyM m)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.MonadicMonadIO m => MonadIO (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonadIO m => MonadIO (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeMonadIO m => MonadIO (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadIO m => MonadIO (IdentityT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityMonadIO m => MonadIO (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadIO m => MonadIO (SelectT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.SelectMonadIO m => MonadIO (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadIO m => MonadIO (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.StrictMonadIO m => MonadIO (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPS(Monoid w, Functor m, MonadIO m) => MonadIO (AccumT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Accum(Monoid w, MonadIO m) => MonadIO (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadIO m) => MonadIO (WriterT w m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictMonadIO m => MonadIO (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.PrimMonadIO m => MonadIO (ContT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ContMonadIO m => MonadIO (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPS(Monoid w, MonadIO m) => MonadIO (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadIO m) => MonadIO (RWST r w s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict
Monoid under bitwise AND.
getAnd (And 0xab <> And 0x12) :: Word82
Instances12Bounded, Enum, Eq, Read, Show, Semigroup, …
Bounded a => Bounded (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Semigroup (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => Monoid (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.Bits a => Bits (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsArbitrary a => Arbitrary (And a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (And a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (And a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function
Monoid under bitwise 'equality'; defined as 1 if the corresponding
bits match, and 0 otherwise.
getIff (Iff 0xab <> Iff 0x12) :: Word870
Instances12Bounded, Enum, Eq, Read, Show, Semigroup, …
Bounded a => Bounded (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => Semigroup (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.FiniteBits a => Monoid (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsThis constraint is arguably too strong. However, as some types (such as
Natural) have undefined complement, this is the only safe choice.Bits a => Bits (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsArbitrary a => Arbitrary (Iff a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Iff a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Iff a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function
Monoid under bitwise inclusive OR.
getIor (Ior 0xab <> Ior 0x12) :: Word8187
Instances12Bounded, Enum, Eq, Read, Show, Semigroup, …
Bounded a => Bounded (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Semigroup (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Monoid (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Bits (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsArbitrary a => Arbitrary (Ior a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Ior a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Ior a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function
Monoid under bitwise XOR.
getXor (Xor 0xab <> Xor 0x12) :: Word8185
Instances12Bounded, Enum, Eq, Read, Show, Semigroup, …
Bounded a => Bounded (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEq a => Eq (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Semigroup (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Monoid (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBits a => Bits (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsFiniteBits a => FiniteBits (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsArbitrary a => Arbitrary (Xor a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Xor a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Xor a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function
The Either type represents values with two possibilities: a value of
type Either a b is either Left a or Right b.
The Either type is sometimes used to represent a value which is either correct or an error; by convention, the Left constructor is used to hold an error value and the Right constructor is used to hold a correct value (mnemonic: "right" also means "correct").
Examples
The type Either String Int is the type of values which can be either
a String or an Int. The Left constructor can be used only on
Strings, and the Right constructor can be used only on Ints:
let s = Left "foo" :: Either String IntsLeft "foo"let n = Right 3 :: Either String IntnRight 3:type ss :: Either String Int:type nn :: Either String Int
The fmap from our Functor instance will ignore Left values, but will apply the supplied function to values contained in a Right:
let s = Left "foo" :: Either String Intlet n = Right 3 :: Either String Intfmap (*2) sLeft "foo"fmap (*2) nRight 6
The Monad instance for Either allows us to chain together multiple actions which may fail, and fail overall if any of the individual steps failed. First we'll write a function that can either parse an Int from a Char, or fail.
import Data.Char ( digitToInt, isDigit ):{ let parseEither :: Char -> Either String Int parseEither c | isDigit c = Right (digitToInt c) | otherwise = Left "parse error":}
The following should work, since both '1' and '2' can be
parsed as Ints.
:{ let parseMultiple :: Either String Int parseMultiple = do x <- parseEither '1' y <- parseEither '2' return (x + y):}
parseMultipleRight 3
But the following should fail overall, since the first operation where
we attempt to parse 'm' as an Int will fail:
:{ let parseMultiple :: Either String Int parseMultiple = do x <- parseEither 'm' y <- parseEither '2' return (x + y):}
parseMultipleLeft "parse error"
Instances86Bifoldable, Bifoldable1, Bifunctor, Bitraversable, Eq2, Ord2, …
Bifoldable EitherDefined in base-4.22.0.0 · Data.BifoldableBifoldable1 EitherDefined in base-4.22.0.0 · Data.Bifoldable1Bifunctor EitherDefined in base-4.22.0.0 · Data.BifunctorBitraversable EitherDefined in base-4.22.0.0 · Data.BitraversableEq2 EitherDefined in base-4.22.0.0 · Data.Functor.ClassesOrd2 EitherDefined in base-4.22.0.0 · Data.Functor.ClassesRead2 EitherDefined in base-4.22.0.0 · Data.Functor.ClassesShow2 EitherDefined in base-4.22.0.0 · Data.Functor.ClassesNFData2 EitherDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary2 EitherDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable2 EitherDefined in hashable-1.5.1.0 · Data.Hashable.ClassAssoc EitherDefined in assoc-1.1.1 · Data.Bifunctor.AssocSwap EitherDefined in assoc-1.1.1 · Data.Bifunctor.SwapBitraversable1 EitherDefined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.ClassBicrosswalk EitherDefined in semialign-1.4 · Data.CrosswalkFromJSON2 EitherDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON2 EitherDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadError e (Either e)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Lift a, Lift b) => Lift (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftMonad (Either e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherFunctor (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherMonadFix (Either e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative (Either e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherFoldable (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableEq a => Eq1 (Either a)Defined in base-4.22.0.0 · Data.Functor.ClassesOrd a => Ord1 (Either a)Defined in base-4.22.0.0 · Data.Functor.ClassesRead a => Read1 (Either a)Defined in base-4.22.0.0 · Data.Functor.ClassesShow a => Show1 (Either a)Defined in base-4.22.0.0 · Data.Functor.ClassesNFData a => NFData1 (Either a)Defined in deepseq-1.5.1.0 · Control.DeepSeqe ~ SomeException => MonadCatch (Either e)Defined in exceptions-0.10.11 · Control.Monad.Catche ~ SomeException => MonadMask (Either e)Defined in exceptions-0.10.11 · Control.Monad.Catche ~ SomeException => MonadThrow (Either e)Defined in exceptions-0.10.11 · Control.Monad.CatchArbitrary a => Arbitrary1 (Either a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable a => Hashable1 (Either a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassAlt (Either a)Defined in semigroupoids-6.0.2 · Data.Functor.AltApply (Either a)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind (Either a)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend (Either a)Defined in semigroupoids-6.0.2 · Data.Functor.ExtendMonoid e => Filterable (Either e)Defined in witherable-0.5 · WitherableMonoid e => Witherable (Either e)Defined in witherable-0.5 · WitherableFromJSON a => FromJSON1 (Either a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON1 (Either a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(Eq a, Eq b) => Eq (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Data a, Data b) => Data (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Data(Ord a, Ord b) => Ord (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Read a, Read b) => Read (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Show a, Show b) => Show (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.EitherGeneric (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(NFData a, NFData b) => NFData (Either a b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(Pretty a, Pretty b) => Pretty (Either a b)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClass(Pretty a, Pretty b) => Pretty (Either a b)Defined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClass(Binary a, Binary b) => Binary (Either a b)Defined in binary-0.8.9.3 · Data.Binary.Class(Finite a, Finite b) => Finite (Either a b)Defined in random-1.3.1 · System.Random.GFinite(Finite a, Uniform a, Finite b, Uniform b) => Uniform (Either a b)Defined in random-1.3.1 · System.Random.Internal(Arbitrary a, Arbitrary b) => Arbitrary (Either a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(CoArbitrary a, CoArbitrary b) => CoArbitrary (Either a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(Function a, Function b) => Function (Either a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function(Hashable a, Hashable b) => Hashable (Either a b)Defined in hashable-1.5.1.0 · Data.Hashable.Class(FromJSON a, FromJSON b) => FromJSON (Either a b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(ToJSON a, ToJSON b) => ToJSON (Either a b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONStrict (Either a b) (Either a b)Defined in strict-0.5.1 · Data.Strict.Classes(a ~ a', b ~ b') => Each (Either a a') (Either b b') a bDefined in microlens-0.4.14.0 · Lens.Micro.Internal(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (Product f g)Defined in indexed-traversable-0.1.5 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (Sum f g)Defined in indexed-traversable-0.1.5 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.5 · WithIndex(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.5 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (Product f g)Defined in indexed-traversable-0.1.5 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (Sum f g)Defined in indexed-traversable-0.1.5 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.5 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.5 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (Product f g)Defined in indexed-traversable-0.1.5 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (Sum f g)Defined in indexed-traversable-0.1.5 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.5 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.5 · WithIndex(RepeatWithIndex i f, RepeatWithIndex j g) => RepeatWithIndex (Either i j) (Product f g)Defined in semialign-1.4 · Data.Semialign.Internal(SemialignWithIndex i f, SemialignWithIndex j g) => SemialignWithIndex (Either i j) (Product f g)Defined in semialign-1.4 · Data.Semialign.Internal(ZipWithIndex i f, ZipWithIndex j g) => ZipWithIndex (Either i j) (Product f g)Defined in semialign-1.4 · Data.Semialign.Internal(FilterableWithIndex i f, FilterableWithIndex j g) => FilterableWithIndex (Either i j) (Product f g)Defined in witherable-0.5 · Witherable(FilterableWithIndex i f, FilterableWithIndex j g) => FilterableWithIndex (Either i j) (Sum f g)Defined in witherable-0.5 · Witherable(WitherableWithIndex i f, WitherableWithIndex j g) => WitherableWithIndex (Either i j) (Product f g)Defined in witherable-0.5 · Witherable(WitherableWithIndex i f, WitherableWithIndex j g) => WitherableWithIndex (Either i j) (Sum f g)Defined in witherable-0.5 · Witherabletype Rep (Either a b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Either"
"GHC.Internal.Data.Either"
"ghc-internal"
'False) (C1 ('MetaCons"Left"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons"Right"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))type Rep1 (Either a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Either"
"GHC.Internal.Data.Either"
"ghc-internal"
'False) (C1 ('MetaCons"Left"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons"Right"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
The Foldable class represents data structures that can be reduced to a summary value one element at a time. Strict left-associative folds are a good fit for space-efficient reduction, while lazy right-associative folds are a good fit for corecursive iteration, or for folds that short-circuit after processing an initial subsequence of the structure's elements.
Instances can be derived automatically by enabling the DeriveFoldable
extension. For example, a derived instance for a binary tree might be:
{-# LANGUAGE DeriveFoldable #-}
data Tree a = Empty
| Leaf a
| Node (Tree a) a (Tree a)
deriving FoldableA more detailed description can be found in the Overview section of
Data.Foldable#overview.
For the class laws see the Laws section of Data.Foldable#laws.
Methods
fold :: Monoid m => t m -> mGiven a structure with elements whose type is a Monoid, combine them via the monoid's
(<>)operator. This fold is right-associative and lazy in the accumulator. When you need a strict left-associative fold, use foldMap' instead, with id as the map.Examples
Basic usage:
Example1 expression fold [[1, 2, 3], [4, 5], [6], []][1,2,3,4,5,6]
Example1 expression fold $ Node (Leaf (Sum 1)) (Sum 3) (Leaf (Sum 5))Sum {getSum = 9}
Folds of unbounded structures do not terminate when the monoid's
(<>)operator is strict:Example1 expression fold (repeat Nothing)* Hangs forever *
Lazy corecursive folds of unbounded structures are fine:
Example2 expressions take 12 $ fold $ map (\i -> [i..i+2]) [0..][0,1,2,1,2,3,2,3,4,3,4,5]sum $ take 4000000 $ fold $ map (\i -> [i..i+2]) [0..]2666668666666
foldMap :: Monoid m => (a -> m) -> t a -> mMap each element of the structure into a monoid, and combine the results with
(<>). This fold is right-associative and lazy in the accumulator. For strict left-associative folds consider foldMap' instead.Examples
Basic usage:
Example1 expression foldMap Sum [1, 3, 5]Sum {getSum = 9}
Example1 expression foldMap Product [1, 3, 5]Product {getProduct = 15}
Example1 expression foldMap (replicate 3) [1, 2, 3][1,1,1,2,2,2,3,3,3]
When a Monoid's
(<>)is lazy in its second argument, foldMap can return a result even from an unbounded structure. For example, lazy accumulation enables Data.ByteString.Builder to efficiently serialise large data structures and produce the output incrementally:Example5 expressions import qualified Data.ByteString.Lazy as Limport qualified Data.ByteString.Builder as Blet bld :: Int -> B.Builder; bld i = B.intDec i <> B.word8 0x20let lbs = B.toLazyByteString $ foldMap bld [0..]L.take 64 lbs"0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24"
foldr :: (a -> b -> b) -> b -> t a -> bRight-associative fold of a structure, lazy in the accumulator.
In the case of lists, foldr, when applied to a binary operator, a starting value (typically the right-identity of the operator), and a list, reduces the list using the binary operator, from right to left:
foldr f z [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn `f` z)...)Note that since the head of the resulting expression is produced by an application of the operator to the first element of the list, given an operator lazy in its right argument, foldr can produce a terminating expression from an unbounded list.
For a general Foldable structure this should be semantically identical to,
foldr f z = foldr f z . toListExamples
Basic usage:
Example1 expression foldr (||) False [False, True, False]True
Example1 expression foldr (||) False []False
Example1 expression foldr (\c acc -> acc ++ [c]) "foo" ['a', 'b', 'c', 'd']"foodcba"
Infinite structures
⚠️ Applying foldr to infinite structures usually doesn't terminate.
It may still terminate under one of the following conditions:
the folding function is short-circuiting
the folding function is lazy on its second argument
Short-circuiting
(||)short-circuits on True values, so the following terminates because there is a True value finitely far from the left side:Example1 expression foldr (||) False (True : repeat False)True
But the following doesn't terminate:
Example1 expression foldr (||) False (repeat False ++ [True])* Hangs forever *
Laziness in the second argument
Applying foldr to infinite structures terminates when the operator is lazy in its second argument (the initial accumulator is never used in this case, and so could be left undefined, but
[]is more clear):Example1 expression take 5 $ foldr (\i acc -> i : fmap (+3) acc) [] (repeat 1)[1,4,7,10,13]
foldr' :: (a -> b -> b) -> b -> t a -> bfoldr' is a variant of foldr that performs strict reduction from right to left, i.e. starting with the right-most element. The input structure must be finite, otherwise foldr' runs out of space (diverges).
If you want a strict right fold in constant space, you need a structure that supports faster than O(n) access to the right-most element, such as
Seqfrom thecontainerspackage.This method does not run in constant space for structures such as lists that don't support efficient right-to-left iteration and so require O(n) space to perform right-to-left reduction. Use of this method with such a structure is a hint that the chosen structure may be a poor fit for the task at hand. If the order in which the elements are combined is not important, use foldl' instead.
foldl :: (b -> a -> b) -> b -> t a -> bLeft-associative fold of a structure, lazy in the accumulator. This is rarely what you want, but can work well for structures with efficient right-to-left sequencing and an operator that is lazy in its left argument.
In the case of lists, foldl, when applied to a binary operator, a starting value (typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:
foldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xnNote that to produce the outermost application of the operator the entire input list must be traversed. Like all left-associative folds, foldl will diverge if given an infinite list.
If you want an efficient strict left-fold, you probably want to use foldl' instead of foldl. The reason for this is that the latter does not force the inner results (e.g.
z `f` x1in the above example) before applying them to the operator (e.g. to(`f` x2)). This results in a thunk chain O(n) elements long, which then must be evaluated from the outside-in.For a general Foldable structure this should be semantically identical to:
foldl f z = foldl f z . toListExamples
The first example is a strict fold, which in practice is best performed with foldl'.
Example1 expression foldl (+) 42 [1,2,3,4]52
Though the result below is lazy, the input is reversed before prepending it to the initial accumulator, so corecursion begins only after traversing the entire input string.
Example1 expression foldl (\acc c -> c : acc) "abcd" "efgh""hgfeabcd"
A left fold of a structure that is infinite on the right cannot terminate, even when for any finite input the fold just returns the initial accumulator:
Example1 expression foldl (\a _ -> a) 0 $ repeat 1* Hangs forever *
WARNING: When it comes to lists, you always want to use either foldl' or foldr instead.
foldl' :: (b -> a -> b) -> b -> t a -> bLeft-associative fold of a structure but with strict application of the operator.
This ensures that each step of the fold is forced to Weak Head Normal Form before being applied, avoiding the collection of thunks that would otherwise occur. This is often what you want to strictly reduce a finite structure to a single strict result (e.g. sum).
For a general Foldable structure this should be semantically identical to,
foldl' f z = foldl' f z . toListtoList :: t a -> [a]List of elements of a structure, from left to right. If the entire list is intended to be reduced via a fold, just fold the structure directly bypassing the list.
Examples
Basic usage:
Example1 expression toList Nothing[]
Example1 expression toList (Just 42)[42]
Example1 expression toList (Left "foo")[]
Example1 expression toList (Node (Leaf 5) 17 (Node Empty 12 (Leaf 8)))[5,17,12,8]
For lists, toList is the identity:
Example1 expression toList [1, 2, 3][1,2,3]
null :: t a -> BoolTest whether the structure is empty. The default implementation is Left-associative and lazy in both the initial element and the accumulator. Thus optimised for structures where the first element can be accessed in constant time. Structures where this is not the case should have a non-default implementation.
Examples
Basic usage:
Example1 expression null []True
Example1 expression null [1]False
null is expected to terminate even for infinite structures. The default implementation terminates provided the structure is bounded on the left (there is a leftmost element).
Example1 expression null [1..]False
elem :: Eq a => a -> t a -> Boolinfix 4Does the element occur in the structure?
Note: elem is often used in infix form.
Examples
Basic usage:
Example1 expression 3 `elem` []False
Example1 expression 3 `elem` [1,2]False
Example1 expression 3 `elem` [1,2,3,4,5]True
For infinite structures, the default implementation of elem terminates if the sought-after value exists at a finite distance from the left side of the structure:
Example1 expression 3 `elem` [1..]True
Example1 expression 3 `elem` ([4..] ++ [3])* Hangs forever *
maximum :: Ord a => t a -> aThe largest element of a non-empty structure. This function is equivalent to
foldr1 max, and its behavior on structures with multiple largest elements depends on the relevant implementation of max. For the default implementation of max (max x y = if x <= y then y else x), structure order is used as a tie-breaker: if there are multiple largest elements, the rightmost of them is chosen (this is equivalent tomaximumBy compare).This function is non-total and will raise a runtime exception if the structure happens to be empty. A structure that supports random access and maintains its elements in order should provide a specialised implementation to return the maximum in faster than linear time.
Examples
Basic usage:
Example1 expression maximum [1..10]10
Example1 expression maximum []*** Exception: Prelude.maximum: empty list
Example1 expression maximum Nothing*** Exception: maximum: empty structure
WARNING: This function is partial for possibly-empty structures like lists.
minimum :: Ord a => t a -> aThe least element of a non-empty structure. This function is equivalent to
foldr1 min, and its behavior on structures with multiple largest elements depends on the relevant implementation of min. For the default implementation of min (min x y = if x <= y then x else y), structure order is used as a tie-breaker: if there are multiple least elements, the leftmost of them is chosen (this is equivalent tominimumBy compare).This function is non-total and will raise a runtime exception if the structure happens to be empty. A structure that supports random access and maintains its elements in order should provide a specialised implementation to return the minimum in faster than linear time.
Examples
Basic usage:
Example1 expression minimum [1..10]1
Example1 expression minimum []*** Exception: Prelude.minimum: empty list
Example1 expression minimum Nothing*** Exception: minimum: empty structure
WARNING: This function is partial for possibly-empty structures like lists.
sum :: Num a => t a -> aThe sum function computes the sum of the numbers of a structure.
Examples
Basic usage:
Example1 expression sum []0
Example1 expression sum [42]42
Example1 expression sum [1..10]55
Example1 expression sum [4.1, 2.0, 1.7]7.8
Example1 expression sum [1..]* Hangs forever *
Instances107Foldable, …
Foldable KeyMapDefined in aeson-2.2.5.1 · Data.Aeson.KeyMapFoldable IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalFoldable ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalFoldable ComplexDefined in base-4.22.0.0 · Data.ComplexFoldable FirstDefined in base-4.22.0.0 · Data.SemigroupFoldable LastDefined in base-4.22.0.0 · Data.SemigroupFoldable MaxDefined in base-4.22.0.0 · Data.SemigroupFoldable MinDefined in base-4.22.0.0 · Data.SemigroupFoldable SCCDefined in containers-0.8 · Data.GraphFoldable IntMapDefined in containers-0.8 · Data.IntMap.InternalFolds in order of increasing key.
Foldable DigitDefined in containers-0.8 · Data.Sequence.InternalFoldable ElemDefined in containers-0.8 · Data.Sequence.InternalFoldable FingerTreeDefined in containers-0.8 · Data.Sequence.InternalFoldable NodeDefined in containers-0.8 · Data.Sequence.InternalFoldable SeqDefined in containers-0.8 · Data.Sequence.InternalFoldable ViewLDefined in containers-0.8 · Data.Sequence.InternalFoldable ViewRDefined in containers-0.8 · Data.Sequence.InternalFoldable SetDefined in containers-0.8 · Data.Set.InternalFolds in order of increasing key.
Foldable PostOrderDefined in containers-0.8 · Data.TreeFoldable TreeDefined in containers-0.8 · Data.TreeFolds in pre-order.
Foldable MaybeSDefined in containers-0.8 · Utils.Containers.Internal.StrictMaybeFoldable DNonEmptyDefined in dlist-1.0 · Data.DList.DNonEmpty.InternalFoldable DListDefined in dlist-1.0 · Data.DList.InternalFoldable NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFoldable FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListFoldable Par1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable GenClosureDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFoldable GenStackFieldDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFoldable GenStackFrameDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFoldable GenStgStackClosureDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresFoldable MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable TyVarBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxFoldable SoloDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable HashedDefined in hashable-1.5.1.0 · Data.Hashable.ClassFoldable ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayFoldable SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayFoldable MaybeDefined in strict-0.5.1 · Data.Strict.MaybeFoldable HashSetDefined in unordered-containers-0.2.21 · Data.HashSet.InternalFoldable VectorDefined in vector-0.13.2.0 · Data.VectorFoldable VectorDefined in vector-0.13.2.0 · Data.Vector.StrictFoldable []Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable U1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UAddrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable V1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable (TkArray k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensFoldable (TkRecord k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensFoldable (Tokens k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensFoldable (Arg a)Defined in base-4.22.0.0 · Data.SemigroupFoldable (Map k)Defined in containers-0.8 · Data.Map.InternalFolds in order of increasing key.
Foldable (Array i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable (Tuple2 a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable (Either e)Defined in strict-0.5.1 · Data.Strict.EitherFoldable (These a)Defined in strict-0.5.1 · Data.Strict.TheseFoldable (Pair e)Defined in strict-0.5.1 · Data.Strict.TupleFoldable (These a)Defined in these-1.2.1 · Data.TheseFoldable (HashMap k)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalFoldable f => Foldable (Lift f)Defined in transformers-0.6.1.2 · Control.Applicative.LiftFoldable f => Foldable (MaybeT f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeFoldable f => Foldable (WrappedFoldable f)Defined in witherable-0.5 · WitherableFoldable m => Foldable (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureBifoldable p => Foldable (Fix p)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixBifoldable p => Foldable (Join p)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinFoldable (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFoldable (Tagged s)Defined in tagged-0.8.11 · Data.TaggedFoldable (Constant a)Defined in transformers-0.6.1.2 · Data.Functor.ConstantFoldable (bi a) => Foldable (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapFoldable f => Foldable (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable f => Foldable (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable f => Foldable (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable f => Foldable (Backwards f)Defined in transformers-0.6.1.2 · Control.Applicative.BackwardsDerived instance.
Foldable f => Foldable (ExceptT e f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptFoldable f => Foldable (IdentityT f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityFoldable f => Foldable (WriterT w f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.LazyFoldable f => Foldable (WriterT w f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictFoldable f => Foldable (Reverse f)Defined in transformers-0.6.1.2 · Data.Functor.ReverseFold from right to left.
Foldable w => Foldable (EnvT e w)Defined in comonad-5.0.10 · Control.Comonad.Trans.Env(Foldable f, Foldable g) => Foldable (These1 f g)Defined in these-1.2.1 · Data.Functor.TheseFoldable (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Foldable(Foldable f, Foldable g) => Foldable (Product f g)Defined in base-4.22.0.0 · Data.Functor.Product(Foldable f, Foldable g) => Foldable (Sum f g)Defined in base-4.22.0.0 · Data.Functor.Sum(Foldable f, Foldable g) => Foldable (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Foldable(Foldable f, Foldable g) => Foldable (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableBifoldable p => Foldable (Flip p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FlipBifoldable p => Foldable (WrappedBifunctor p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedFoldable (Clown f a)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownFoldable f => Foldable (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable g => Foldable (Joker g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Joker(Foldable f, Foldable g) => Foldable (Compose f g)Defined in base-4.22.0.0 · Data.Functor.Compose(Foldable f, Foldable g) => Foldable (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Foldable(Foldable (f a), Foldable (g a)) => Foldable (Product f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Foldable (f a), Foldable (g a)) => Foldable (Sum f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Sum(Foldable f, Bifoldable p) => Foldable (Tannen f p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Bifoldable p, Foldable g) => Foldable (Biff p f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff
The Const functor.
Examples
fmap (++ "World") (Const "Hello")Const "Hello"
Because we ignore the second type parameter to Const,
the Applicative instance, which has
essentially turns into (<*>) :: Monoid m => Const m (a -> b) -> Const m a -> Const m bMonoid m => m -> m -> m, which is (<>)
Const [1, 2, 3] <*> Const [4, 5, 6]Const [1,2,3,4,5,6]
Instances80Semigroupoid, Generic1, FoldableWithIndex, FunctorWithIndex, TraversableWithIndex, Bifoldable, …
Semigroupoid ConstDefined in semigroupoids-6.0.2 · Data.SemigroupoidGeneric1 (Const a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFoldableWithIndex Void (Const e)Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void (Const e)Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void (Const e)Defined in indexed-traversable-0.1.5 · WithIndexUnbox a => MVector MVector (Const a b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (Const a b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBifoldable ConstDefined in base-4.22.0.0 · Data.BifoldableBifoldable1 ConstDefined in base-4.22.0.0 · Data.Bifoldable1Bifunctor ConstDefined in base-4.22.0.0 · Data.BifunctorBitraversable ConstDefined in base-4.22.0.0 · Data.BitraversableEq2 ConstDefined in base-4.22.0.0 · Data.Functor.ClassesOrd2 ConstDefined in base-4.22.0.0 · Data.Functor.ClassesRead2 ConstDefined in base-4.22.0.0 · Data.Functor.ClassesShow2 ConstDefined in base-4.22.0.0 · Data.Functor.ClassesNFData2 ConstDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary2 ConstDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable2 ConstDefined in hashable-1.5.1.0 · Data.Hashable.ClassAssoc ConstDefined in assoc-1.1.1 · Data.Bifunctor.AssocBiapplicative ConstDefined in bifunctors-5.6.3 · Data.BiapplicativeBiapply ConstDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBitraversable1 ConstDefined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.ClassFromJSON2 ConstDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON2 ConstDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONFunctor (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstMonoid m => Applicative (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFoldable (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstTraversable (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableEq a => Eq1 (Const a)Defined in base-4.22.0.0 · Data.Functor.ClassesOrd a => Ord1 (Const a)Defined in base-4.22.0.0 · Data.Functor.ClassesRead a => Read1 (Const a)Defined in base-4.22.0.0 · Data.Functor.ClassesShow a => Show1 (Const a)Defined in base-4.22.0.0 · Data.Functor.ClassesContravariant (Const a)Defined in base-4.22.0.0 · Data.Functor.ContravariantNFData a => NFData1 (Const a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary1 (Const a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable a => Hashable1 (Const a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassMonoid m => Divisible (Const m)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleSemigroup m => Apply (Const m)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassA
Const mis not Applicative unless itsmis a Monoid, but it is an instance of ApplySemigroup m => Divise (Const m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DiviseFilterable (Const r)Defined in witherable-0.5 · WitherableWitherable (Const r)Defined in witherable-0.5 · WitherableFromJSON a => FromJSON1 (Const a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON1 (Const a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBounded a => Bounded (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstEnum a => Enum (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstEq a => Eq (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFloating a => Floating (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFractional a => Fractional (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstIntegral a => Integral (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Const(Typeable k, Data a, Typeable b) => Data (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum a => Num (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstOrd a => Ord (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstRead a => Read (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstReal a => Real (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstRealFloat a => RealFloat (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstRealFrac a => RealFrac (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstShow a => Show (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstIx a => Ix (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstIsString a => IsString (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.StringGeneric (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstSemigroup a => Semigroup (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstMonoid a => Monoid (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstBits a => Bits (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFiniteBits a => FiniteBits (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstStorable a => Storable (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstNFData a => NFData (Const a b)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (Const a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Const a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Const a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable a => Hashable (Const a b)Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim a => Prim (Const a b)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Const a b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON a => FromJSON (Const a b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(FromJSON a, FromJSONKey a) => FromJSONKey (Const a b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Const a b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(ToJSON a, ToJSONKey a) => ToJSONKey (Const a b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep (Const a b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Const"Const"
"GHC.Internal.Data.Functor.Const"
"ghc-internal"
'True) (C1 ('MetaCons"Const"
'PrefixI 'True) (S1 ('MetaSel ('Just"getConst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 (Const a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Const"Const"
"GHC.Internal.Data.Functor.Const"
"ghc-internal"
'True) (C1 ('MetaCons"Const"
'PrefixI 'True) (S1 ('MetaSel ('Just"getConst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))data MVector s (Const a b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector (Const a b)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
Identity functor and monad. (a non-strict monad)
Examples
fmap (+1) (Identity 0)Identity 1
Identity [1, 2, 3] <> Identity [4, 5, 6]Identity [1,2,3,4,5,6]
>>> do
x <- Identity 10
y <- Identity (x + 5)
pure (x + y)
Identity 25
Constructors
IdentityrunIdentity :: a
Instances79Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFunctor IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityMonadFix IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityApplicative IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFoldable IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityTraversable IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipFoldable1 IdentityDefined in base-4.22.0.0 · Data.Foldable1Eq1 IdentityDefined in base-4.22.0.0 · Data.Functor.ClassesOrd1 IdentityDefined in base-4.22.0.0 · Data.Functor.ClassesRead1 IdentityDefined in base-4.22.0.0 · Data.Functor.ClassesShow1 IdentityDefined in base-4.22.0.0 · Data.Functor.ClassesNFData1 IdentityDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary1 IdentityDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable1 IdentityDefined in hashable-1.5.1.0 · Data.Hashable.ClassDistributive IdentityDefined in distributive-0.6.3 · Data.DistributiveComonad IdentityDefined in comonad-5.0.10 · Control.ComonadComonadApply IdentityDefined in comonad-5.0.10 · Control.ComonadAlt IdentityDefined in semigroupoids-6.0.2 · Data.Functor.AltChoose the first option every time. While 'choose the last option' every time is also valid, this instance satisfies more laws.
Apply IdentityDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind IdentityDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend IdentityDefined in semigroupoids-6.0.2 · Data.Functor.ExtendTraversable1 IdentityDefined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.ClassSemialign IdentityDefined in semialign-1.4 · Data.Semialign.InternalCrosswalk IdentityDefined in semialign-1.4 · Data.CrosswalkRepeat IdentityDefined in semialign-1.4 · Data.Semialign.InternalUnzip IdentityDefined in semialign-1.4 · Data.Semialign.InternalZip IdentityDefined in semialign-1.4 · Data.Semialign.InternalFromJSON1 IdentityDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 IdentityDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFoldableWithIndex () IdentityDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex () IdentityDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex () IdentityDefined in indexed-traversable-0.1.5 · WithIndexRepeatWithIndex () IdentityDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex () IdentityDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex () IdentityDefined in semialign-1.4 · Data.Semialign.InternalUnbox a => MVector MVector (Identity a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (Identity a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMonoid w => MonadAccum w (AccumT w Identity)Defined in mtl-2.3.1 · Control.Monad.AccumMonadSelect r (SelectT r Identity)Defined in mtl-2.3.1 · Control.Monad.SelectBounded a => Bounded (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityEnum a => Enum (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityEq a => Eq (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFloating a => Floating (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFractional a => Fractional (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityIntegral a => Integral (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityData a => Data (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum a => Num (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityOrd a => Ord (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityRead a => Read (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityThis instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed
Real a => Real (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityRealFloat a => RealFloat (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityRealFrac a => RealFrac (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityShow a => Show (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityThis instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed
Ix a => Ix (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityIsString a => IsString (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.StringGeneric (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentitySemigroup a => Semigroup (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityMonoid a => Monoid (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityBits a => Bits (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFiniteBits a => FiniteBits (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityStorable a => Storable (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityNFData a => NFData (Identity a)Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary a => Binary (Identity a)Defined in binary-0.8.9.3 · Data.Binary.ClassArbitrary a => Arbitrary (Identity a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Identity a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Identity a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable a => Hashable (Identity a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim a => Prim (Identity a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Identity a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON a => FromJSON (Identity a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey a => FromJSONKey (Identity a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Identity a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey a => ToJSONKey (Identity a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep (Identity a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Identity"Identity"
"GHC.Internal.Data.Functor.Identity"
"ghc-internal"
'True) (C1 ('MetaCons"Identity"
'PrefixI 'True) (S1 ('MetaSel ('Just"runIdentity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Identity = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Identity"Identity"
"GHC.Internal.Data.Functor.Identity"
"ghc-internal"
'True) (C1 ('MetaCons"Identity"
'PrefixI 'True) (S1 ('MetaSel ('Just"runIdentity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))data MVector s (Identity a)MV_Identity (MVector s a)
data Vector (Identity a)V_Identity (Vector a)
Maybe monoid returning the leftmost non-Nothing value.
First a is isomorphic to Alt Maybe a, but precedes it
historically.
Beware that Data.Monoid.First is different from
Data.Semigroup.First. The former returns the first non-Nothing,
so Data.Monoid.First Nothing <> x = x. The latter simply returns the first value,
thus Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing.
Examples
First (Just "hello") <> First Nothing <> First (Just "world")First {getFirst = Just "hello"}
First Nothing <> memptyFirst {getFirst = Nothing}
Instances32Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidFunctor FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonadFix FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidFoldable FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipNFData1 FirstDefined in deepseq-1.5.1.0 · Control.DeepSeqAlt FirstDefined in semigroupoids-6.0.2 · Data.Functor.AltApply FirstDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind FirstDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassPlus FirstDefined in semigroupoids-6.0.2 · Data.Functor.PlusFromJSON1 FirstDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 FirstDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidEq a => Eq (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidData a => Data (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd a => Ord (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidRead a => Read (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidShow a => Show (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidSemigroup (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonoid (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidNFData a => NFData (First a)Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary a => Binary (First a)Defined in binary-0.8.9.3 · Data.Binary.ClassArbitrary a => Arbitrary (First a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (First a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (First a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionFromJSON a => FromJSON (First a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (First a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep (First a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid"First"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))type Rep1 First = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid"First"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))
Maybe monoid returning the rightmost non-Nothing value.
Last a is isomorphic to Dual (First a), and thus to
Dual (Alt Maybe a)
Data.Semigroup.Last. The former returns the last non-Nothing,
so x <> Data.Monoid.Last Nothing = x. The latter simply returns the last value,
thus x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing.
Examples
Last (Just "hello") <> Last Nothing <> Last (Just "world")Last {getLast = Just "world"}
Last Nothing <> memptyLast {getLast = Nothing}
Instances32Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidFunctor LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonadFix LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidFoldable LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipNFData1 LastDefined in deepseq-1.5.1.0 · Control.DeepSeqAlt LastDefined in semigroupoids-6.0.2 · Data.Functor.AltApply LastDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind LastDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassPlus LastDefined in semigroupoids-6.0.2 · Data.Functor.PlusFromJSON1 LastDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 LastDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidEq a => Eq (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidData a => Data (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd a => Ord (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidRead a => Read (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidShow a => Show (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidSemigroup (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidMonoid (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidNFData a => NFData (Last a)Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary a => Binary (Last a)Defined in binary-0.8.9.3 · Data.Binary.ClassArbitrary a => Arbitrary (Last a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Last a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Last a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionFromJSON a => FromJSON (Last a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Last a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep (Last a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid"Last"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))type Rep1 Last = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid"Last"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Maybe)))
The Down type allows you to reverse sort order conveniently. A value of type
Down a contains a value of type a (represented as Down a).
If a has an Ord instance associated with it then comparing two
values thus wrapped will give you the opposite of their normal sort order.
This is particularly useful when sorting in generalised list comprehensions,
as in: then sortWith by Down x.
compare True FalseGT
compare (Down True) (Down False)LT
If a has a Bounded instance then the wrapped instance also respects
the reversed ordering by exchanging the values of minBound and
maxBound.
minBound :: Int-9223372036854775808
minBound :: Down IntDown 9223372036854775807
All other instances of Down a behave as they do for a.
Instances52Monad, Functor, MonadFix, Applicative, Foldable, Traversable, …
Monad DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdFunctor DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdMonadFix DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdFoldable DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMonadZip DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipFoldable1 DownDefined in base-4.22.0.0 · Data.Foldable1Eq1 DownDefined in base-4.22.0.0 · Data.Functor.ClassesOrd1 DownDefined in base-4.22.0.0 · Data.Functor.ClassesRead1 DownDefined in base-4.22.0.0 · Data.Functor.ClassesShow1 DownDefined in base-4.22.0.0 · Data.Functor.ClassesNFData1 DownDefined in deepseq-1.5.1.0 · Control.DeepSeqApply DownDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind DownDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassFromJSON1 DownDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 DownDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 DownDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUnbox a => MVector MVector (Down a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseUnbox a => Vector Vector (Down a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseBounded a => Bounded (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Ord(Enum a, Bounded a, Eq a) => Enum (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdEq a => Eq (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdFloating a => Floating (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdFractional a => Fractional (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdData a => Data (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum a => Num (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdOrd a => Ord (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdRead a => Read (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdReal a => Real (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdRealFloat a => RealFloat (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdRealFrac a => RealFrac (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdShow a => Show (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdIx a => Ix (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdGeneric (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdMonoid a => Monoid (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdBits a => Bits (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdFiniteBits a => FiniteBits (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdStorable a => Storable (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdNFData a => NFData (Down a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (Down a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Down a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Down a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionPrim a => Prim (Down a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox a => Unbox (Down a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON a => FromJSON (Down a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Down a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep (Down a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Down"
"GHC.Internal.Data.Ord"
"ghc-internal"
'True) (C1 ('MetaCons"Down"
'PrefixI 'True) (S1 ('MetaSel ('Just"getDown"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Down = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Down"
"GHC.Internal.Data.Ord"
"ghc-internal"
'True) (C1 ('MetaCons"Down"
'PrefixI 'True) (S1 ('MetaSel ('Just"getDown"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))data MVector s (Down a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector (Down a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
Proxy is a type that holds no data, but has a phantom parameter of arbitrary type (or even kind). Its use is to provide type information, even though there is no value available of that type (or it may be too costly to create one).
Historically, Proxy :: Proxy a is a safer alternative to the
undefined :: a idiom.
Proxy :: Proxy (Void, Int -> Int)Proxy
Proxy can even hold types of higher kinds,
Proxy :: Proxy EitherProxy
Proxy :: Proxy FunctorProxy
Proxy :: Proxy complicatedStructureProxy
Instances62Generic1, FoldableWithIndex, FunctorWithIndex, TraversableWithIndex, RepeatWithIndex, SemialignWithIndex, …
Generic1 ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldableWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void ProxyDefined in indexed-traversable-0.1.5 · WithIndexRepeatWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Void ProxyDefined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex Void ProxyDefined in witherable-0.5 · WitherableWitherableWithIndex Void ProxyDefined in witherable-0.5 · WitherableMonad ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyFunctor ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyApplicative ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyFoldable ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableAlternative ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonadPlus ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonadZip ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipEq1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesOrd1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesRead1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesShow1 ProxyDefined in base-4.22.0.0 · Data.Functor.ClassesContravariant ProxyDefined in base-4.22.0.0 · Data.Functor.ContravariantNFData1 ProxyDefined in deepseq-1.5.1.0 · Control.DeepSeqHashable1 ProxyDefined in hashable-1.5.1.0 · Data.Hashable.ClassDistributive ProxyDefined in distributive-0.6.3 · Data.DistributiveDecidable ProxyDefined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleDivisible ProxyDefined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleAlt ProxyDefined in semigroupoids-6.0.2 · Data.Functor.AltApply ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend ProxyDefined in semigroupoids-6.0.2 · Data.Functor.ExtendConclude ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Contravariant.ConcludeDecide ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DecideDivise ProxyDefined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DivisePlus ProxyDefined in semigroupoids-6.0.2 · Data.Functor.PlusAlign ProxyDefined in semialign-1.4 · Data.Semialign.InternalSemialign ProxyDefined in semialign-1.4 · Data.Semialign.InternalUnalign ProxyDefined in semialign-1.4 · Data.Semialign.InternalRepeat ProxyDefined in semialign-1.4 · Data.Semialign.InternalUnzip ProxyDefined in semialign-1.4 · Data.Semialign.InternalZip ProxyDefined in semialign-1.4 · Data.Semialign.InternalFilterable ProxyDefined in witherable-0.5 · WitherableWitherable ProxyDefined in witherable-0.5 · WitherableFromJSON1 ProxyDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 ProxyDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBounded (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyEnum (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyEq (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyData t => Data (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyRead (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyShow (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyIx (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyGeneric (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyMonoid (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyNFData (Proxy a)Defined in deepseq-1.5.1.0 · Control.DeepSeqHashable (Proxy a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON (Proxy a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON (Proxy a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep (Proxy t) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Proxy"
"GHC.Internal.Data.Proxy"
"ghc-internal"
'False) (C1 ('MetaCons"Proxy"
'PrefixI 'False) U1)type Rep1 Proxy = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Proxy"
"GHC.Internal.Data.Proxy"
"ghc-internal"
'False) (C1 ('MetaCons"Proxy"
'PrefixI 'False) U1)
Boolean monoid under conjunction (&&).
All x <> All y = All (x && y)Examples
All True <> mempty <> All False)All {getAll = False}
mconcat (map (\x -> All (even x)) [2,4,6,7,8])All {getAll = False}
All True <> memptyAll {getAll = True}
Instances22Bounded, Eq, Data, Ord, Read, Show, …
Bounded AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalData AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNFData AllDefined in deepseq-1.5.1.0 · Control.DeepSeqBinary AllDefined in binary-0.8.9.3 · Data.Binary.ClassArbitrary AllDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary AllDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction AllDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionUnbox AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON AllDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON AllDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONMVector MVector AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep All = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"All"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"All"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAll"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))data MVector s AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector AllDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
Boolean monoid under disjunction (||).
Any x <> Any y = Any (x || y)Examples
Any True <> mempty <> Any FalseAny {getAny = True}
mconcat (map (\x -> Any (even x)) [2,4,6,7,8])Any {getAny = True}
Any False <> memptyAny {getAny = False}
Instances22Bounded, Eq, Data, Ord, Read, Show, …
Bounded AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEq AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalData AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalSemigroup AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalMonoid AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNFData AnyDefined in deepseq-1.5.1.0 · Control.DeepSeqBinary AnyDefined in binary-0.8.9.3 · Data.Binary.ClassArbitrary AnyDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary AnyDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction AnyDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionUnbox AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON AnyDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON AnyDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONMVector MVector AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype Rep Any = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"Any"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Any"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAny"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))data MVector s AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector AnyDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
IsString is used in combination with the -XOverloadedStrings
language extension to convert the literals to different string types.
For example, if you use the text package, you can say
{-# LANGUAGE OverloadedStrings #-}
myText = "hello world" :: Text
Internally, the extension will convert this to the equivalent of
myText = fromString @Text ("hello world" :: String)
Note: You can use fromString in normal code as well,
but the usual performance/memory efficiency problems with String apply.
Instances26IsString, …
IsString KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeyIsString ValueDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalIsString BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder · orphanIsString ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeBeware: fromString truncates multi-byte characters to octets. e.g. "枯朶に烏のとまりけり秋の暮" becomes �6k�nh~�Q��n�
IsString ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalBeware: fromString truncates multi-byte characters to octets. e.g. "枯朶に烏のとまりけり秋の暮" becomes �6k�nh~�Q��n�
IsString ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalBeware: fromString truncates multi-byte characters to octets. e.g. "枯朶に烏のとまりけり秋の暮" becomes �6k�nh~�Q��n�
IsString JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesIsString ByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArrayIsString SlicedByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArray.SlicedIsString DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJIsString CmdSpecDefined in process-1.6.26.1 · System.Process.Commonconstruct a ShellCommand from a string literal
IsString TextDefined in text-2.1.3 · Data.Text · orphanPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedStrings"\55555" :: Text"\65533"
IsString BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedStrings"\55555" :: Builder"\65533"
IsString TextDefined in text-2.1.3 · Data.Text.Lazy · orphanPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedStrings"\55555" :: Data.Text.Lazy.Text"\65533"
IsString ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalIsString (Encoding' a)Defined in aeson-2.2.5.1 · Data.Aeson.Encoding.InternalIsString (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJIsString a => IsString (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.String(IsString a, Hashable a) => IsString (Hashed a)Defined in hashable-1.5.1.0 · Data.Hashable.Classa ~ Char => IsString (Seq a)Defined in containers-0.8 · Data.Sequence.Internala ~ Char => IsString (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.Internala ~ Char => IsString (DList a)Defined in dlist-1.0 · Data.DList.Internala ~ Char => IsString [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.String(a ~ Char)context was introduced in4.9.0.0a ~ r => IsString (Format r a)Defined in formatting-7.2.0 · Formatting.InternalUseful instance for writing format string. With this you can write
"Foo"instead ofnow "Foo!".IsString a => IsString (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.StringIsString a => IsString (Tagged s a)Defined in tagged-0.8.11 · Data.Tagged
Functors representing data structures that can be transformed to structures of the same shape by performing an Applicative (or, therefore, Monad) action on each element from left to right.
A more detailed description of what same shape means, the various methods,
how traversals are constructed, and example advanced use-cases can be found
in the Overview section of Data.Traversable#overview.
For the class laws see the Laws section of Data.Traversable#laws.
Methods
traverse :: Applicative f => (a -> f b) -> t a -> f (t b)Map each element of a structure to an action, evaluate these actions from left to right, and collect the results. For a version that ignores the results see traverse_.
Examples
Basic usage:
In the first two examples we show each evaluated action mapping to the output structure.
Example1 expression traverse Just [1,2,3,4]Just [1,2,3,4]
Example1 expression traverse id [Right 1, Right 2, Right 3, Right 4]Right [1,2,3,4]
In the next examples, we show that Nothing and Left values short circuit the created structure.
Example1 expression traverse (const Nothing) [1,2,3,4]Nothing
Example1 expression traverse (\x -> if odd x then Just x else Nothing) [1,2,3,4]Nothing
Example1 expression traverse id [Right 1, Right 2, Right 3, Right 4, Left 0]Left 0
sequenceA :: Applicative f => t (f a) -> f (t a)Evaluate each action in the structure from left to right, and collect the results. For a version that ignores the results see sequenceA_.
Examples
Basic usage:
For the first two examples we show sequenceA fully evaluating a a structure and collecting the results.
Example1 expression sequenceA [Just 1, Just 2, Just 3]Just [1,2,3]
Example1 expression sequenceA [Right 1, Right 2, Right 3]Right [1,2,3]
The next two example show Nothing and Just will short circuit the resulting structure if present in the input. For more context, check the Traversable instances for Either and Maybe.
Example1 expression sequenceA [Just 1, Just 2, Just 3, Nothing]Nothing
Example1 expression sequenceA [Right 1, Right 2, Right 3, Left 4]Left 4
mapM :: Monad m => (a -> m b) -> t a -> m (t b)Map each element of a structure to a monadic action, evaluate these actions from left to right, and collect the results. For a version that ignores the results see
Data.Foldable.mapM_.Examples
mapM is literally a traverse with a type signature restricted to Monad. Its implementation may be more efficient due to additional power of Monad.
sequence :: Monad m => t (m a) -> m (t a)Evaluate each monadic action in the structure from left to right, and collect the results. For a version that ignores the results see
Data.Foldable.sequence_.Examples
Basic usage:
The first two examples are instances where the input and and output of sequence are isomorphic.
Example1 expression sequence $ Right [1,2,3,4][Right 1,Right 2,Right 3,Right 4]
Example1 expression sequence $ [Right 1,Right 2,Right 3,Right 4]Right [1,2,3,4]
The following examples demonstrate short circuit behavior for sequence.
Example1 expression sequence $ Left [1,2,3,4]Left [1,2,3,4]
Example1 expression sequence $ [Left 0, Right 1,Right 2,Right 3,Right 4]Left 0
Instances102Traversable, …
Traversable KeyMapDefined in aeson-2.2.5.1 · Data.Aeson.KeyMapTraversable IResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalTraversable ResultDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalTraversable ComplexDefined in base-4.22.0.0 · Data.ComplexTraversable FirstDefined in base-4.22.0.0 · Data.SemigroupTraversable LastDefined in base-4.22.0.0 · Data.SemigroupTraversable MaxDefined in base-4.22.0.0 · Data.SemigroupTraversable MinDefined in base-4.22.0.0 · Data.SemigroupTraversable SCCDefined in containers-0.8 · Data.GraphTraversable IntMapDefined in containers-0.8 · Data.IntMap.InternalTraverses in order of increasing key.
Traversable DigitDefined in containers-0.8 · Data.Sequence.InternalTraversable ElemDefined in containers-0.8 · Data.Sequence.InternalTraversable FingerTreeDefined in containers-0.8 · Data.Sequence.InternalTraversable NodeDefined in containers-0.8 · Data.Sequence.InternalTraversable SeqDefined in containers-0.8 · Data.Sequence.InternalTraversable ViewLDefined in containers-0.8 · Data.Sequence.InternalTraversable ViewRDefined in containers-0.8 · Data.Sequence.InternalTraversable PostOrderDefined in containers-0.8 · Data.TreeTraversable TreeDefined in containers-0.8 · Data.TreeTraverses in pre-order.
Traversable DListDefined in dlist-1.0 · Data.DList.InternalTraversable NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable DownDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListTraversable Par1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable GenClosureDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresTraversable GenStackFieldDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresTraversable GenStackFrameDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresTraversable GenStgStackClosureDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresTraversable MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable TyVarBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxTraversable SoloDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable ArrayDefined in primitive-0.9.1.0 · Data.Primitive.ArrayTraversable SmallArrayDefined in primitive-0.9.1.0 · Data.Primitive.SmallArrayTraversable MaybeDefined in strict-0.5.1 · Data.Strict.MaybeTraversable VectorDefined in vector-0.13.2.0 · Data.VectorTraversable VectorDefined in vector-0.13.2.0 · Data.Vector.StrictTraversable []Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable U1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UAddrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable V1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable (TkArray k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensTraversable (TkRecord k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensTraversable (Tokens k)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensTraversable (Arg a)Defined in base-4.22.0.0 · Data.SemigroupTraversable (Map k)Defined in containers-0.8 · Data.Map.InternalTraverses in order of increasing key.
Traversable (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable (Tuple2 a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable (Either e)Defined in strict-0.5.1 · Data.Strict.EitherTraversable (These a)Defined in strict-0.5.1 · Data.Strict.TheseTraversable (Pair e)Defined in strict-0.5.1 · Data.Strict.TupleTraversable (These a)Defined in these-1.2.1 · Data.TheseTraversable (HashMap k)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalTraversable f => Traversable (Lift f)Defined in transformers-0.6.1.2 · Control.Applicative.LiftTraversable f => Traversable (MaybeT f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeTraversable f => Traversable (WrappedFoldable f)Defined in witherable-0.5 · WitherableIx i => Traversable (Array i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Traversable(Monad m, Traversable m) => Traversable (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureBitraversable p => Traversable (Fix p)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixBitraversable p => Traversable (Join p)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinTraversable (Const m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable (Tagged s)Defined in tagged-0.8.11 · Data.TaggedTraversable (Constant a)Defined in transformers-0.6.1.2 · Data.Functor.ConstantTraversable (bi a) => Traversable (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapTraversable f => Traversable (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable f => Traversable (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable f => Traversable (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable f => Traversable (Backwards f)Defined in transformers-0.6.1.2 · Control.Applicative.BackwardsDerived instance.
Traversable f => Traversable (ExceptT e f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptTraversable f => Traversable (IdentityT f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityTraversable f => Traversable (WriterT w f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.LazyTraversable f => Traversable (WriterT w f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictTraversable f => Traversable (Reverse f)Defined in transformers-0.6.1.2 · Data.Functor.ReverseTraverse from right to left.
Traversable w => Traversable (EnvT e w)Defined in comonad-5.0.10 · Control.Comonad.Trans.Env(Traversable f, Traversable g) => Traversable (These1 f g)Defined in these-1.2.1 · Data.Functor.TheseTraversable (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Traversable(Traversable f, Traversable g) => Traversable (Product f g)Defined in base-4.22.0.0 · Data.Functor.Product(Traversable f, Traversable g) => Traversable (Sum f g)Defined in base-4.22.0.0 · Data.Functor.Sum(Traversable f, Traversable g) => Traversable (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Traversable(Traversable f, Traversable g) => Traversable (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableBitraversable p => Traversable (Flip p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FlipBitraversable p => Traversable (WrappedBifunctor p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedTraversable (Clown f a)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownTraversable f => Traversable (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable g => Traversable (Joker g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Joker(Traversable f, Traversable g) => Traversable (Compose f g)Defined in base-4.22.0.0 · Data.Functor.Compose(Traversable f, Traversable g) => Traversable (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Traversable(Traversable (f a), Traversable (g a)) => Traversable (Product f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Traversable (f a), Traversable (g a)) => Traversable (Sum f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Sum(Traversable f, Bitraversable p) => Traversable (Tannen f p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Bitraversable p, Traversable g) => Traversable (Biff p f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff
Representational equality. If Coercion a b is inhabited by some terminating
value, then the type a has the same underlying representation as the type b.
To use this equality in practice, pattern-match on the Coercion a b to get out
the Coercible a b instance, and then use coerce to apply it.
Instances11Category, Groupoid, Semigroupoid, TestCoercion, Bounded, Enum, …
Category CoercionDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategoryGroupoid CoercionDefined in semigroupoids-6.0.2 · Data.GroupoidSemigroupoid CoercionDefined in semigroupoids-6.0.2 · Data.SemigroupoidTestCoercion (Coercion a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionCoercible a b => Bounded (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionCoercible a b => Enum (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionEq (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Coercion(Coercible a b, Data a, Data b) => Data (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionCoercible a b => Read (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionShow (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Coercion
Propositional equality. If a :~: b is inhabited by some terminating
value, then the type a is the same as the type b. To use this equality
in practice, pattern-match on the a :~: b to get out the Refl constructor;
in the body of the pattern-match, the compiler knows that a ~ b.
Instances15Category, Groupoid, Semigroupoid, TestCoercion, TestEquality, NFData2, …
Category (:~:)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.CategoryGroupoid (:~:)Defined in semigroupoids-6.0.2 · Data.GroupoidSemigroupoid (:~:)Defined in semigroupoids-6.0.2 · Data.SemigroupoidTestCoercion ((:~:) a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionTestEquality ((:~:) a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityNFData2 (:~:)Defined in deepseq-1.5.1.0 · Control.DeepSeqNFData1 ((:~:) a)Defined in deepseq-1.5.1.0 · Control.DeepSeqa ~ b => Bounded (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equalitya ~ b => Enum (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityEq (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equality(a ~ b, Data a) => Data (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equalitya ~ b => Read (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityShow (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityNFData (a :~: b)Defined in deepseq-1.5.1.0 · Control.DeepSeq
The class Typeable allows a concrete representation of a type to be calculated.
The Bounded class is used to name the upper and lower limits of a type. Ord is not a superclass of Bounded since types that are not totally ordered may also have upper and lower bounds.
The Bounded class may be derived for any enumeration type;
minBound is the first constructor listed in the data declaration
and maxBound is the last.
Bounded may also be derived for single-constructor datatypes whose
constituent types are in Bounded.
Instances119Bounded, …
Bounded Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesBounded TokenTypeDefined in cborg-0.2.10.0 · Codec.CBOR.DecodingBounded TimeSpecDefined in clock-0.8.4 · System.ClockBounded SecondsDefined in clock-0.8.4 · System.Clock.SecondsBounded FileTypeDefined in directory-1.3.10.0 · System.Directory.Internal.CommonBounded XdgDirectoryDefined in directory-1.3.10.0 · System.Directory.Internal.CommonBounded XdgDirectoryListDefined in directory-1.3.10.0 · System.Directory.Internal.CommonBounded ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderBounded AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalBounded AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalBounded CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesBounded IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrBounded WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrBounded AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsBounded DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsBounded SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsBounded SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsBounded Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBounded Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBounded Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBounded Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBounded ExtensionDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensionsBounded CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesBounded BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded CharDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded IntDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded LevityDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded VecCountDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded VecElemDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded WordDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeBounded Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBounded Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBounded Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBounded Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBounded I8Defined in text-2.1.3 · Data.Text.ForeignBounded FPFormatDefined in text-2.1.3 · Data.Text.Lazy.Builder.RealFloatBounded QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.QuarterBounded ()Defined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded a => Bounded (First a)Defined in base-4.22.0.0 · Data.SemigroupBounded a => Bounded (Last a)Defined in base-4.22.0.0 · Data.SemigroupBounded a => Bounded (Max a)Defined in base-4.22.0.0 · Data.SemigroupBounded a => Bounded (Min a)Defined in base-4.22.0.0 · Data.SemigroupBounded a => Bounded (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesBounded a => Bounded (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBounded a => Bounded (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBounded a => Bounded (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBounded a => Bounded (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsBounded a => Bounded (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityBounded a => Bounded (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdBounded a => Bounded (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalBounded a => Bounded (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalBounded a => Bounded (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalBounded a => Bounded (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded m => Bounded (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupBounded (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Proxy(Bounded a, Bounded b) => Bounded (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(Bounded a, Bounded b) => Bounded (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.EnumBounded a => Bounded (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstBounded b => Bounded (Tagged s b)Defined in tagged-0.8.11 · Data.TaggedCoercible a b => Bounded (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Coercion(Biapplicative bi, Bounded a, Bounded b) => Bounded (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biap(Applicative f, Bounded a) => Bounded (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid(Bounded a, Bounded b, Bounded c) => Bounded (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enuma ~ b => Bounded (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equality(Bounded a, Bounded b, Bounded c, Bounded d) => Bounded (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enuma ~~ b => Bounded (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityBounded (f (g a)) => Bounded (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e) => Bounded (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f) => Bounded (a, b, c, d, e, f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g) => Bounded (a, b, c, d, e, f, g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h) => Bounded (a, b, c, d, e, f, g, h)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i) => Bounded (a, b, c, d, e, f, g, h, i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j) => Bounded (a, b, c, d, e, f, g, h, i, j)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k) => Bounded (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m, Bounded n) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m, Bounded n, Bounded o) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-internal-9.1401.0 · GHC.Internal.Enum
Class Enum defines operations on sequentially ordered types.
The enumFrom... methods are used in Haskell's translation of
arithmetic sequences.
Instances of Enum may be derived for any enumeration type (types
whose constructors have no fields). The nullary constructors are
assumed to be numbered left-to-right by fromEnum from 0 through n-1.
See Chapter 10 of the Haskell Report for more details.
For any type that is an instance of class Bounded as well as Enum, the following should hold:
The calls
succ maxBoundandpred minBoundshould result in a runtime error.fromEnum and toEnum should give a runtime error if the result value is not representable in the result type. For example,
toEnum 7 :: Boolis an error.enumFrom and enumFromThen should be defined with an implicit bound, thus:
enumFrom x = enumFromTo x maxBound
enumFromThen x y = enumFromThenTo x y bound
where
bound | fromEnum y >= fromEnum x = maxBound
| otherwise = minBoundMethods
succ :: a -> aSuccessor of a value. For numeric types, succ adds 1.
pred :: a -> aPredecessor of a value. For numeric types, pred subtracts 1.
toEnum :: Int -> aConvert from an Int.
fromEnum :: a -> IntenumFrom :: a -> [a]Used in Haskell's translation of
[n..]with[n..] = enumFrom n, a possible implementation beingenumFrom n = n : enumFrom (succ n).Examples
enumFrom 4 :: [Integer] = [4,5,6,7,...]enumFrom 6 :: [Int] = [6,7,8,9,...,maxBound :: Int]
enumFromThen :: a -> a -> [a]Used in Haskell's translation of
[n,n'..]with[n,n'..] = enumFromThen n n', a possible implementation beingenumFromThen n n' = n : n' : worker (f x) (f x n'),worker s v = v : worker s (s v),x = fromEnum n' - fromEnum nandf n y | n > 0 = f (n - 1) (succ y) | n < 0 = f (n + 1) (pred y) | otherwise = yExamples
enumFromThen 4 6 :: [Integer] = [4,6,8,10...]enumFromThen 6 2 :: [Int] = [6,2,-2,-6,...,minBound :: Int]
enumFromTo :: a -> a -> [a]Used in Haskell's translation of
[n..m]with[n..m] = enumFromTo n m, a possible implementation beingenumFromTo n m | n <= m = n : enumFromTo (succ n) m | otherwise = []Examples
enumFromTo 6 10 :: [Int] = [6,7,8,9,10]enumFromTo 42 1 :: [Integer] = []
enumFromThenTo :: a -> a -> a -> [a]Used in Haskell's translation of
[n,n'..m]with[n,n'..m] = enumFromThenTo n n' m, a possible implementation beingenumFromThenTo n n' m = worker (f x) (c x) n m,x = fromEnum n' - fromEnum n,c x = bool (>=) ((x 0)f n y | n > 0 = f (n - 1) (succ y) | n < 0 = f (n + 1) (pred y) | otherwise = yand
worker s c v m | c v m = v : worker s c (s v) m | otherwise = []Examples
enumFromThenTo 4 2 -6 :: [Integer] = [4,2,0,-2,-4,-6]enumFromThenTo 6 8 2 :: [Int] = []
Instances154Enum, …
Enum ArityDefined in aeson-2.2.5.1 · Data.Aeson.THEnum IoManagerFlagDefined in base-4.22.0.0 · GHC.RTS.FlagsEnum Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesEnum TokenTypeDefined in cborg-0.2.10.0 · Codec.CBOR.DecodingEnum ClockDefined in clock-0.8.4 · System.ClockEnum TimeSpecDefined in clock-0.8.4 · System.ClockEnum SecondsDefined in clock-0.8.4 · System.Clock.SecondsEnum FileTypeDefined in directory-1.3.10.0 · System.Directory.Internal.CommonEnum XdgDirectoryDefined in directory-1.3.10.0 · System.Directory.Internal.CommonEnum XdgDirectoryListDefined in directory-1.3.10.0 · System.Directory.Internal.CommonEnum IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderEnum ClosureTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.ClosureTypesEnum CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesEnum IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrEnum WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrEnum AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEnum DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEnum SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEnum SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEnum HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesEnum SeekModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.DeviceEnum IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeEnum IoSubSystemDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.SubSystemEnum Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum ExtensionDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensionsEnum DoCostCentresDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsEnum DoHeapProfileDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsEnum DoTraceDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsEnum GiveGCStatsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsEnum IoManagerFlagDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsEnum ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsEnum WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsEnum ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfEnum WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfEnum CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesEnum BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum CharDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanfromEnum just truncates its argument, beware of all sorts of overflows.
List generators have extremely peculiar behavior, mandated by Haskell Report 2010:
Example1 expression [0..1.5][0.0,1.0,2.0]
Enum FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanfromEnum just truncates its argument, beware of all sorts of overflows.
List generators have extremely peculiar behavior, mandated by Haskell Report 2010:
Example1 expression [0..1.5 :: Float][0.0,1.0,2.0]
Enum IntDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum LevityDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum VecCountDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum VecElemDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum WordDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeEnum Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum MessageDefined in parsec-3.1.18.0 · Text.Parsec.ErrorEnum CardinalityDefined in random-1.3.1 · System.Random.GFiniteThis is needed only as a superclass of Integral.
Enum I8Defined in text-2.1.3 · Data.Text.ForeignEnum FPFormatDefined in text-2.1.3 · Data.Text.Lazy.Builder.RealFloatEnum DayDefined in time-1.15 · Data.Time.Calendar.DaysEnum MonthDefined in time-1.15 · Data.Time.Calendar.MonthEnum QuarterDefined in time-1.15 · Data.Time.Calendar.QuarterEnum QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.Quartermaps Q1..Q4 to 1..4
Enum DayOfWeekDefined in time-1.15 · Data.Time.Calendar.WeekEnum DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeEnum NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeEnum StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonEnum StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonEnum BaudRateDefined in unix-2.8.8.0 · System.Posix.Terminal.CommonEnum ()Defined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum a => Enum (Blind a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (Negative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (NonNegative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (NonPositive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (NonZero a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (Positive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersEnum a => Enum (First a)Defined in base-4.22.0.0 · Data.SemigroupEnum a => Enum (Last a)Defined in base-4.22.0.0 · Data.SemigroupEnum a => Enum (Max a)Defined in base-4.22.0.0 · Data.SemigroupEnum a => Enum (Min a)Defined in base-4.22.0.0 · Data.SemigroupEnum a => Enum (WrappedMonoid a)Defined in base-4.22.0.0 · Data.SemigroupEnum a => Enum (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesEnum a => Enum (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesEnum a => Enum (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsEnum a => Enum (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityEnum a => Enum (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.EnumIntegral a => Enum (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Real(Enum a, Bounded a, Eq a) => Enum (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdEnum (Fixed a)Defined in base-4.22.0.0 · Data.FixedRecall that, for numeric types, succ and pred typically add and subtract
1, respectively. This is not true in the case of Fixed, whose successor and predecessor functions intuitively return the "next" and "previous" values in the enumeration. The results of these functions thus depend on the resolution of the Fixed value. For example, when enumerating values of resolution10^-3oftype Milli = Fixed E3,Example1 expression succ (0.000 :: Milli)0.001
and likewise
Example1 expression pred (0.000 :: Milli)-0.001
In other words, succ and pred increment and decrement a fixed-precision value by the least amount such that the value's resolution is unchanged. For example,
10^-12is the smallest (positive) amount that can be added to a value oftype Pico = Fixed E12without changing its resolution, and soExample1 expression succ (0.000000000000 :: Pico)0.000000000001
and similarly
Example1 expression pred (0.000000000000 :: Pico)-0.000000000001
This is worth bearing in mind when defining Fixed arithmetic sequences. In particular, you may be forgiven for thinking the sequence
[1..10] :: [Pico]evaluates to
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] :: [Pico].However, this is not true. On the contrary, similarly to the above implementations of succ and pred,
enumFromTo :: Pico -> Pico -> [Pico]has a "step size" of10^-12. Hence, the list[1..10] :: [Pico]has the form[1.000000000000, 1.00000000001, 1.00000000002, ..., 10.000000000000]and contains
9 * 10^12 + 1values.Enum (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyEnum (bi a b) => Enum (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapEnum (f a) => Enum (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidEnum (f a) => Enum (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalEnum a => Enum (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstEnum a => Enum (Tagged s a)Defined in tagged-0.8.11 · Data.TaggedCoercible a b => Enum (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Coerciona ~ b => Enum (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Equalitya ~~ b => Enum (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityEnum (f (g a)) => Enum (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
Instances4Eq, Ord, Show, Exception
Deprecated. ErrorCallWithLocation has been deprecated in favour of ErrorCall (which does not have a location). Backtraces are now handled by the backtrace exception mechanisms exclusively.
Arithmetic exceptions.
Instances4Eq, Ord, Show, Exception
Eq ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeOrd ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeShow ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeException ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.Type
Any type that you wish to throw or catch as an exception must be an
instance of the Exception class. The simplest case is a new exception
type directly below the root:
data MyException = ThisException | ThatException
deriving Show
instance Exception MyExceptionThe default method definitions in the Exception class do what we need
in this case. You can now throw and catch ThisException and
ThatException as exceptions:
*Main> throw ThisException `catch` \e -> putStrLn ("Caught " ++ show (e :: MyException))
Caught ThisException
In more complicated examples, you may wish to define a whole hierarchy of exceptions:
---------------------------------------------------------------------
-- Make the root exception type for all the exceptions in a compiler
data SomeCompilerException = forall e . Exception e => SomeCompilerException e
instance Show SomeCompilerException where
show (SomeCompilerException e) = show e
instance Exception SomeCompilerException
compilerExceptionToException :: Exception e => e -> SomeException
compilerExceptionToException = toException . SomeCompilerException
compilerExceptionFromException :: Exception e => SomeException -> Maybe e
compilerExceptionFromException x = do
SomeCompilerException a <- fromException x
cast a
---------------------------------------------------------------------
-- Make a subhierarchy for exceptions in the frontend of the compiler
data SomeFrontendException = forall e . Exception e => SomeFrontendException e
instance Show SomeFrontendException where
show (SomeFrontendException e) = show e
instance Exception SomeFrontendException where
toException = compilerExceptionToException
fromException = compilerExceptionFromException
frontendExceptionToException :: Exception e => e -> SomeException
frontendExceptionToException = toException . SomeFrontendException
frontendExceptionFromException :: Exception e => SomeException -> Maybe e
frontendExceptionFromException x = do
SomeFrontendException a <- fromException x
cast a
---------------------------------------------------------------------
-- Make an exception type for a particular frontend compiler exception
data MismatchedParentheses = MismatchedParentheses
deriving Show
instance Exception MismatchedParentheses where
toException = frontendExceptionToException
fromException = frontendExceptionFromExceptionWe can now catch a MismatchedParentheses exception as
MismatchedParentheses, SomeFrontendException or
SomeCompilerException, but not other types, e.g. IOException:
*Main> throw MismatchedParentheses `catch` \e -> putStrLn ("Caught " ++ show (e :: MismatchedParentheses))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses `catch` \e -> putStrLn ("Caught " ++ show (e :: SomeFrontendException))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses `catch` \e -> putStrLn ("Caught " ++ show (e :: SomeCompilerException))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses `catch` \e -> putStrLn ("Caught " ++ show (e :: IOException))
*** Exception: MismatchedParentheses
Methods
toException :: e -> SomeExceptiontoExceptionshould produce a SomeException with no attached ExceptionContext.fromException :: SomeException -> Maybe edisplayException :: e -> StringRender this exception value in a human-friendly manner.
Default implementation:
show.
Instances41Exception, …
Exception AesonExceptionDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalException AsyncCancelledDefined in async-2.2.6 · Control.Concurrent.Async.InternalException ExceptionInLinkedThreadDefined in async-2.2.6 · Control.Concurrent.Async.InternalException WardenExceptionDefined in async-2.2.6 · Control.Concurrent.Async.WardenException TimeoutDefined in base-4.22.0.0 · System.TimeoutException SizeOverflowExceptionDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeException FatalErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.PanicException DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadException TimeoutDefined in extra-1.8 · System.Time.ExtraException VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeException NestedAtomicallyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException NoMatchingContinuationPromptDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException NoMethodErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException NonTerminationDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException PatternMatchFailDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException RecConErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException RecSelErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException RecUpdErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException TypeErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseException DynamicDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DynamicException ErrorCallDefined in ghc-internal-9.1401.0 · GHC.Internal.ExceptionException ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeException SomeExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeThis drops any attached ExceptionContext.
Exception AllocationLimitExceededDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException AssertionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException BlockedIndefinitelyOnMVarDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException BlockedIndefinitelyOnSTMDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException CompactionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException DeadlockDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException FixIOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException IOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException SomeAsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException FileLockingNotSupportedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.Lock.CommonException EncodingExceptionDefined in os-string-2.0.8 · System.OsString.Encoding.InternalException ParseErrorDefined in parsec-3.1.18.0 · Text.Parsec.ErrorException UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorException a => Exception (ExceptionWithContext a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeException e => Exception (NoBacktrace e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Exception.Type
The SomeException type is the root of the exception type hierarchy.
When an exception of type e is thrown, behind the scenes it is
encapsulated in a SomeException.
Constructors
forall e. (Exception e, HasExceptionContext) => SomeException e
Instances2Show, Exception
Show SomeExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeException SomeExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeThis drops any attached ExceptionContext.
True if the argument is an IEEE "not-a-number" (NaN) value
Lists, but with an Applicative functor based on zipping.
Examples
In contrast to the Applicative for GHC.List.List:
(+) <$> [1, 2, 3] <*> [4, 5, 6][5,6,7,6,7,8,7,8,9]
The Applicative instance of ZipList applies the operation by pairing up the elements, analogous to zipWithN
(+) <$> ZipList [1, 2, 3] <*> ZipList [4, 5, 6]ZipList {getZipList = [5,7,9]}
(,,,) <$> ZipList [1, 2] <*> ZipList [3, 4] <*> ZipList [5, 6] <*> ZipList [7, 8]ZipList {getZipList = [(1,3,5,7),(2,4,6,8)]}
ZipList [(+1), (^2), (/ 2)] <*> ZipList [5, 5, 5]ZipList {getZipList = [6.0,25.0,2.5]}
Constructors
ZipListgetZipList :: [a]
Instances39Functor, Applicative, Foldable, Traversable, Alternative, NFData1, …
Functor ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListApplicative ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListf <$> ZipList xs1 <*> ... <*> ZipList xsN = ZipList (zipWithN f xs1 ... xsN)where
zipWithNrefers to thezipWithfunction of the appropriate arity (zipWith,zipWith3,zipWith4, ...). For example:(\a b c -> stimes c [a, b]) <$> ZipList "abcd" <*> ZipList "567" <*> ZipList [1..] = ZipList (zipWith3 (\a b c -> stimes c [a, b]) "abcd" "567" [1..]) = ZipList {getZipList = ["a5","b6b6","c7c7c7"]}Foldable ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListTraversable ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListAlternative ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListNFData1 ZipListDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary1 ZipListDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryApply ZipListDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassAlign ZipListDefined in semialign-1.4 · Data.Semialign.InternalSemialign ZipListDefined in semialign-1.4 · Data.Semialign.InternalzipWith =.liftA2Unalign ZipListDefined in semialign-1.4 · Data.Semialign.InternalRepeat ZipListDefined in semialign-1.4 · Data.Semialign.InternalUnzip ZipListDefined in semialign-1.4 · Data.Semialign.InternalZip ZipListDefined in semialign-1.4 · Data.Semialign.InternalFilterable ZipListDefined in witherable-0.5 · WitherableWitherable ZipListDefined in witherable-0.5 · WitherableGeneric1 ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListFoldableWithIndex Int ZipListDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Int ZipListDefined in indexed-traversable-0.1.5 · WithIndexSame instance as for
[].TraversableWithIndex Int ZipListDefined in indexed-traversable-0.1.5 · WithIndexRepeatWithIndex Int ZipListDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int ZipListDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int ZipListDefined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex Int ZipListDefined in witherable-0.5 · WitherableWitherableWithIndex Int ZipListDefined in witherable-0.5 · WitherableIsList (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.IsListEq a => Eq (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListData a => Data (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListOrd a => Ord (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListRead a => Read (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListShow a => Show (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListGeneric (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListNFData a => NFData (ZipList a)Defined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary a => Arbitrary (ZipList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (ZipList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (ZipList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Functiontype Rep (ZipList a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipList"ZipList"
"GHC.Internal.Functor.ZipList"
"ghc-internal"
'True) (C1 ('MetaCons"ZipList"
'PrefixI 'True) (S1 ('MetaSel ('Just"getZipList"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))type Rep1 ZipList = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipList"ZipList"
"GHC.Internal.Functor.ZipList"
"ghc-internal"
'True) (C1 ('MetaCons"ZipList"
'PrefixI 'True) (S1 ('MetaSel ('Just"getZipList"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))type Item (ZipList a) = aDefined in ghc-internal-9.1401.0 · GHC.Internal.IsList
Products: encode multiple arguments to constructors
Constructors
f p :*: g pinfixr 6
Instances77RecordToPairs, GToJSON', Generic1, GNFData, GBinaryGet, GBinaryPut, …
(Monoid pairs, RecordToPairs enc pairs arity a, RecordToPairs enc pairs arity b) => RecordToPairs enc pairs arity (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(EncodeProduct arity a, EncodeProduct arity b) => GToJSON' Encoding arity (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(WriteProduct arity a, WriteProduct arity b, ProductSize a, ProductSize b) => GToJSON' Value arity (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(GNFData arity a, GNFData arity b) => GNFData arity (a :*: b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(GBinaryGet a, GBinaryGet b) => GBinaryGet (a :*: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GBinaryPut a, GBinaryPut b) => GBinaryPut (a :*: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GEq1 v f, GEq1 v g) => GEq1 v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd1 v f, GOrd1 v g) => GOrd1 v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead1Con v f, GRead1Con v g) => GRead1Con v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShow1Con v f, GShow1Con v g) => GShow1Con v (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(RecursivelyShrink f, RecursivelyShrink g) => RecursivelyShrink (f :*: g)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(GCoArbitrary f, GCoArbitrary g) => GCoArbitrary (f :*: g)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(GFunction f, GFunction g) => GFunction (f :*: g)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function(GHashable arity a, GHashable arity b) => GHashable arity (a :*: b)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances · orphan(FieldNames a, FieldNames b) => FieldNames (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(ProductFromJSON arity a, ProductFromJSON arity b) => ProductFromJSON arity (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(RecordFromJSON' arity a, RecordFromJSON' arity b) => RecordFromJSON' arity (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(EncodeProduct arity a, EncodeProduct arity b) => EncodeProduct arity (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(WriteProduct arity a, WriteProduct arity b) => WriteProduct arity (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.5 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.5 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (f :*: g)Defined in indexed-traversable-0.1.5 · WithIndex(Monad f, Monad g) => Monad (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Functor f, Functor g) => Functor (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(MonadFix f, MonadFix g) => MonadFix (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.Fix(Applicative f, Applicative g) => Applicative (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Foldable f, Foldable g) => Foldable (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Foldable(Traversable f, Traversable g) => Traversable (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Traversable(Alternative f, Alternative g) => Alternative (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(MonadPlus f, MonadPlus g) => MonadPlus (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(MonadZip f, MonadZip g) => MonadZip (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.Zip(Foldable1 f, Foldable1 g) => Foldable1 (f :*: g)Defined in base-4.22.0.0 · Data.Foldable1(Eq1 f, Eq1 g) => Eq1 (f :*: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Ord1 f, Ord1 g) => Ord1 (f :*: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Read1 f, Read1 g) => Read1 (f :*: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Show1 f, Show1 g) => Show1 (f :*: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Contravariant f, Contravariant g) => Contravariant (f :*: g)Defined in base-4.22.0.0 · Data.Functor.ContravariantIsNullaryCon (f :*: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GUniform f, GUniform g) => GUniform (f :*: g)Defined in random-1.3.1 · System.Random.Internal(GUniformRange f, GUniformRange g) => GUniformRange (f :*: g)Defined in random-1.3.1 · System.Random.Internal(GFinite a, GFinite b) => GFinite (a :*: b)Defined in random-1.3.1 · System.Random.GFinite(Distributive a, Distributive b) => Distributive (a :*: b)Defined in distributive-0.6.3 · Data.Distributive(GDistributive a, GDistributive b) => GDistributive (a :*: b)Defined in distributive-0.6.3 · Data.Distributive.Generic(Decidable f, Decidable g) => Decidable (f :*: g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Divisible(Divisible f, Divisible g) => Divisible (f :*: g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Divisible(GG f, GG g) => GG (f :*: g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic(Alt f, Alt g) => Alt (f :*: g)Defined in semigroupoids-6.0.2 · Data.Functor.Alt(Apply f, Apply g) => Apply (f :*: g)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.Class(Bind f, Bind g) => Bind (f :*: g)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.Class(Conclude f, Conclude g) => Conclude (f :*: g)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.Conclude(Decide f, Decide g) => Decide (f :*: g)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.Decide(Divise f, Divise g) => Divise (f :*: g)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.Divise(Plus f, Plus g) => Plus (f :*: g)Defined in semigroupoids-6.0.2 · Data.Functor.Plus(Traversable1 f, Traversable1 g) => Traversable1 (f :*: g)Defined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.Class(Filterable f, Filterable g) => Filterable (f :*: g)Defined in witherable-0.5 · Witherable(Witherable f, Witherable g) => Witherable (f :*: g)Defined in witherable-0.5 · Witherable(ProductSize a, ProductSize b) => ProductSize (a :*: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.Generic(GSubtermsIncl f a, GSubtermsIncl g a) => GSubterms (f :*: g) aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(GSubtermsIncl f a, GSubtermsIncl g a) => GSubtermsIncl (f :*: g) aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryIsRecord f isRecord => IsRecord (f :*: g) isRecordDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericAllNullary (a :*: b) FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.Generic(Eq (f p), Eq (g p)) => Eq ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Data(Ord (f p), Ord (g p)) => Ord ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Read (f p), Read (g p)) => Read ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Show (f p), Show (g p)) => Show ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Semigroup (f p), Semigroup (g p)) => Semigroup ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Monoid (f p), Monoid (g p)) => Monoid ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(GEq (f p), GEq (g p)) => GEq ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd (f p), GOrd (g p)) => GOrd ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GReadCon (f p), GReadCon (g p)) => GReadCon ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShowCon (f p), GShowCon (g p)) => GShowCon ((:*:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internaltype Rep ((:*:) f g p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":*:"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons":*:"
('InfixI 'RightAssociative6
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g p))))type Rep1 (f :*: g) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":*:"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons":*:"
('InfixI 'RightAssociative6
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 g)))type Swizzle (f :*: g) = Swizzle f ::*: Swizzle gDefined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic
Instances63SumToJSON', GToJSON', TaggedObject, Generic1, GNFData, GBinaryGet, …
(SumToJSON' s enc arity a, SumToJSON' s enc arity b) => SumToJSON' s enc arity (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(AllNullary (a :+: b) allNullary, SumToJSON enc arity (a :+: b) allNullary) => GToJSON' enc arity (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(TaggedObject enc arity a, TaggedObject enc arity b) => TaggedObject enc arity (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(GNFData arity a, GNFData arity b) => GNFData arity (a :+: b)Defined in deepseq-1.5.1.0 · Control.DeepSeq(GSumGet a, GSumGet b, SumSize a, SumSize b) => GBinaryGet (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GSumPut a, GSumPut b, SumSize a, SumSize b) => GBinaryPut (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphan(GEq1 v f, GEq1 v g) => GEq1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd1 v f, GOrd1 v g) => GOrd1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead1 v f, GRead1 v g) => GRead1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShow1 v f, GShow1 v g) => GShow1 v (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(RecursivelyShrink f, RecursivelyShrink g) => RecursivelyShrink (f :+: g)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(GCoArbitrary f, GCoArbitrary g) => GCoArbitrary (f :+: g)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(GFunction f, GFunction g) => GFunction (f :+: g)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function(GSum arity a, GSum arity b) => GHashable arity (a :+: b)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances · orphan(GSum arity a, GSum arity b) => GSum arity (a :+: b)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances(FromPair arity a, FromPair arity b) => FromPair arity (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(FromTaggedObject arity a, FromTaggedObject arity b) => FromTaggedObject arity (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(FromUntaggedValue arity a, FromUntaggedValue arity b) => FromUntaggedValue arity (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(AllNullary (a :+: b) allNullary, ParseSum arity (a :+: b) allNullary) => GFromJSON' arity (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONMultiple constructors.
(SumFromString a, SumFromString b) => SumFromString (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(GetConName a, GetConName b) => GetConName (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.5 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.5 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (Either i j) (f :+: g)Defined in indexed-traversable-0.1.5 · WithIndex(Functor f, Functor g) => Functor (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Foldable f, Foldable g) => Foldable (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Foldable(Traversable f, Traversable g) => Traversable (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Traversable(Foldable1 f, Foldable1 g) => Foldable1 (f :+: g)Defined in base-4.22.0.0 · Data.Foldable1(Eq1 f, Eq1 g) => Eq1 (f :+: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Ord1 f, Ord1 g) => Ord1 (f :+: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Read1 f, Read1 g) => Read1 (f :+: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Show1 f, Show1 g) => Show1 (f :+: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Contravariant f, Contravariant g) => Contravariant (f :+: g)Defined in base-4.22.0.0 · Data.Functor.Contravariant(GSumGet a, GSumGet b) => GSumGet (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.Generic(GSumPut a, GSumPut b) => GSumPut (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.Generic(SumSize a, SumSize b) => SumSize (a :+: b)Defined in binary-0.8.9.3 · Data.Binary.GenericIsNullaryDataType (f :+: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GFinite f, GFinite g) => GUniform (f :+: g)Defined in random-1.3.1 · System.Random.Internal(GFinite a, GFinite b) => GFinite (a :+: b)Defined in random-1.3.1 · System.Random.GFinite(SumSize a, SumSize b) => SumSize (a :+: b)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances(GG f, GG g) => GG (f :+: g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic(Extend f, Extend g) => Extend (f :+: g)Defined in semigroupoids-6.0.2 · Data.Functor.Extend(Traversable1 f, Traversable1 g) => Traversable1 (f :+: g)Defined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.Class(Filterable f, Filterable g) => Filterable (f :+: g)Defined in witherable-0.5 · Witherable(Witherable f, Witherable g) => Witherable (f :+: g)Defined in witherable-0.5 · Witherable(ConstructorNames a, ConstructorNames b) => ConstructorNames (a :+: b)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(GSubtermsIncl f a, GSubtermsIncl g a) => GSubterms (f :+: g) aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(GSubtermsIncl f a, GSubtermsIncl g a) => GSubtermsIncl (f :+: g) aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(AllNullary a allNullaryL, AllNullary b allNullaryR, And allNullaryL allNullaryR allNullary) => AllNullary (a :+: b) allNullaryDefined in aeson-2.2.5.1 · Data.Aeson.Types.Generic(Eq (f p), Eq (g p)) => Eq ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Typeable f, Typeable g, Data p, Data (f p), Data (g p)) => Data ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Data(Ord (f p), Ord (g p)) => Ord ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Read (f p), Read (g p)) => Read ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Show (f p), Show (g p)) => Show ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(GEq (f p), GEq (g p)) => GEq ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GOrd (f p), GOrd (g p)) => GOrd ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GRead (f p), GRead (g p)) => GRead ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GShow (f p), GShow (g p)) => GShow ((:+:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internaltype Rep ((:+:) f g p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":+:"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"L1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))) :+: C1 ('MetaCons"R1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g p))))type Rep1 (f :+: g) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":+:"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"L1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)) :+: C1 ('MetaCons"R1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 g)))type Swizzle (f :+: g) = Swizzle f ::+: Swizzle gDefined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic
Instances55GToJSON', Generic1, GNFData, GEq1, GOrd1, GRead1Con, …
(ToJSON1 f, GToJSON' Encoding One g) => GToJSON' Encoding One (f :.: g)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(ToJSON1 f, GToJSON' Value One g) => GToJSON' Value One (f :.: g)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONFunctor f => Generic1 (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(NFData1 f, GNFData One g) => GNFData One (f :.: g)Defined in deepseq-1.5.1.0 · Control.DeepSeq(Eq1 f, GEq1 NonV4 g) => GEq1 NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Ord1 f, GOrd1 NonV4 g) => GOrd1 NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Read1 f, GRead1Con NonV4 g) => GRead1Con NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Show1 f, GShow1Con NonV4 g) => GShow1Con NonV4 (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Hashable1 f, GHashable One g) => GHashable One (f :.: g)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances · orphan(FromJSON1 f, GFromJSON One g) => GFromJSON One (f :.: g)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(FoldableWithIndex i f, FoldableWithIndex j g) => FoldableWithIndex (i, j) (f :.: g)Defined in indexed-traversable-0.1.5 · WithIndex(FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex (i, j) (f :.: g)Defined in indexed-traversable-0.1.5 · WithIndex(TraversableWithIndex i f, TraversableWithIndex j g) => TraversableWithIndex (i, j) (f :.: g)Defined in indexed-traversable-0.1.5 · WithIndex(Functor f, Functor g) => Functor (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Applicative f, Applicative g) => Applicative (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Foldable f, Foldable g) => Foldable (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Foldable(Traversable f, Traversable g) => Traversable (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Traversable(Alternative f, Applicative g) => Alternative (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Foldable1 f, Foldable1 g) => Foldable1 (f :.: g)Defined in base-4.22.0.0 · Data.Foldable1(Eq1 f, Eq1 g) => Eq1 (f :.: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Ord1 f, Ord1 g) => Ord1 (f :.: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Read1 f, Read1 g) => Read1 (f :.: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Show1 f, Show1 g) => Show1 (f :.: g)Defined in base-4.22.0.0 · Data.Functor.Classes(Functor f, Contravariant g) => Contravariant (f :.: g)Defined in base-4.22.0.0 · Data.Functor.ContravariantIsNullaryCon (f :.: g)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Distributive a, Distributive b) => Distributive (a :.: b)Defined in distributive-0.6.3 · Data.Distributive(Distributive a, GDistributive b) => GDistributive (a :.: b)Defined in distributive-0.6.3 · Data.Distributive.Generic(Applicative f, Decidable g) => Decidable (f :.: g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Divisible(Applicative f, Divisible g) => Divisible (f :.: g)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Divisible(Alt f, Functor g) => Alt (f :.: g)Defined in semigroupoids-6.0.2 · Data.Functor.Alt(Apply f, Apply g) => Apply (f :.: g)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.Class(Apply f, Applicative f, Conclude g) => Conclude (f :.: g)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.Conclude(Apply f, Decide g) => Decide (f :.: g)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.Decide(Apply f, Divise g) => Divise (f :.: g)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.Divise(Plus f, Functor g) => Plus (f :.: g)Defined in semigroupoids-6.0.2 · Data.Functor.Plus(Traversable1 f, Traversable1 g) => Traversable1 (f :.: g)Defined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.Class(Functor f, Filterable g) => Filterable (f :.: g)Defined in witherable-0.5 · Witherable(Traversable f, Witherable g) => Witherable (f :.: g)Defined in witherable-0.5 · WitherableIsRecord (f :.: g) TrueDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericAllNullary (a :.: b) FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericEq (f (g p)) => Eq ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Typeable f, Typeable g, Data p, Data (f (g p))) => Data ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (f (g p)) => Ord ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (f (g p)) => Read ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (f (g p)) => Show ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (f (g p)) => Semigroup ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid (f (g p)) => Monoid ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Eq1 f, GEq (g p)) => GEq ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Ord1 f, GOrd (g p)) => GOrd ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Read1 f, GReadCon (g p)) => GReadCon ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Show1 f, GShowCon (g p)) => GShowCon ((:.:) f g p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internaltype Rep ((:.:) f g p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":.:"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"Comp1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unComp1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (g p)))))type Rep1 (f :.: g) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":.:"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"Comp1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unComp1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (f :.: Rec1 g)))type Swizzle (f :.: g) = f :.: Swizzle gDefined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic
Datatype to represent the associativity of a constructor
Instances16Bounded, Enum, Eq, Data, Ord, Read, …
Bounded AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEnum AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsData AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsIx AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSingKind AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSingI 'LeftAssociativeDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSingI 'NotAssociativeDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSingI 'RightAssociativeDefined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep Associativity = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Associativity"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"LeftAssociative"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"RightAssociative"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NotAssociative"
'PrefixI 'False) U1))type DemoteRep Associativity = AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.Genericsdata SingSLeftAssociative :: R:SingAssociativitya 'LeftAssociativeSRightAssociative :: R:SingAssociativitya 'RightAssociativeSNotAssociative :: R:SingAssociativitya 'NotAssociative
Type synonym for encoding meta-information for constructors
Instances26SumToJSON', GToJSON', TaggedObject, GRead1, GShow1, GSum, …
ConsToJSON enc arity a => SumToJSON' UntaggedValue enc arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(GToJSON' Encoding arity a, ConsToJSON Encoding arity a, Constructor c) => SumToJSON' TwoElemArray Encoding arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(GToJSON' Value arity a, ConsToJSON Value arity a, Constructor c) => SumToJSON' TwoElemArray Value arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(GToJSON' enc arity a, ConsToJSON enc arity a, FromPairs enc pairs, KeyValuePair enc pairs, Constructor c) => SumToJSON' ObjectWithSingleField enc arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(Constructor c, IsString enc) => SumToJSON' UntaggedValue enc arity (C1 c U1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONConsToJSON enc arity a => GToJSON' enc arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(ConsToJSON enc arity a, AllNullary (C1 c a) allNullary, SumToJSON enc arity (C1 c a) allNullary) => GToJSON' enc arity (D1 d (C1 c a))Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(IsRecord a isRecord, TaggedObject' enc pairs arity a isRecord, FromPairs enc pairs, IsString enc, KeyValuePair enc pairs, Constructor c) => TaggedObject enc arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(Constructor c, GRead1Con v f, IsNullaryCon f) => GRead1 v (C1 c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Constructor c, GShow1Con v f, IsNullaryCon f) => GShow1 v (C1 c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGHashable arity a => GSum arity (C1 c a)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances(Constructor c, ConsFromJSON arity a) => FromPair arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(IsRecord f isRecord, FromTaggedObject' arity f isRecord, Constructor c) => FromTaggedObject arity (C1 c f)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONConstructor c => FromUntaggedValue arity (C1 c U1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(ConsFromJSON arity a, Constructor c) => FromUntaggedValue arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(ConsFromJSON arity a, AllNullary (C1 c a) allNullary, ParseSum arity (C1 c a) allNullary, Constructor c) => GFromJSON' arity (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONSingle constructor.
Constructor c => SumFromString (C1 c U1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONConstructor c => GetConName (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGBinaryGet a => GSumGet (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.GenericGBinaryPut a => GSumPut (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.GenericSumSize (C1 c a)Defined in binary-0.8.9.3 · Data.Binary.GenericIsNullaryDataType (C1 c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalSumSize (C1 c a)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.InstancesConstructor c => ConstructorNames (C1 c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(Constructor c, GReadCon (f p), IsNullaryCon f) => GRead (C1 c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Constructor c, GShowCon (f p), IsNullaryCon f) => GShow (C1 c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal
Class for datatypes that represent data constructors
Instances1Constructor
(KnownSymbol n, SingI f, SingI r) => Constructor ('MetaCons n f r)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
Type synonym for encoding meta-information for datatypes
Instances9GToJSON', GRead1, GShow1, GFromJSON, SumFromString, GetConName, …
(ConsToJSON enc arity a, AllNullary (C1 c a) allNullary, SumToJSON enc arity (C1 c a) allNullary) => GToJSON' enc arity (D1 d (C1 c a))Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(GRead1 v f, IsNullaryDataType f) => GRead1 v (D1 d f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1 v f => GShow1 v (D1 d f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(GFromJSON' arity a, Datatype d) => GFromJSON arity (D1 d a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONSumFromString a => SumFromString (D1 d a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONGetConName a => GetConName (D1 d a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONConstructorNames a => ConstructorNames (D1 d a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(GRead (f p), IsNullaryDataType f) => GRead (D1 d f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow (f p) => GShow (D1 d f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal
Class for datatypes that represent datatypes
Methods
datatypeName :: t d f a -> [Char]The name of the datatype (unqualified)
moduleName :: t d f a -> [Char]The fully-qualified name of the module where the type is declared
packageName :: t d f a -> [Char]The package name of the module where the type is declared
isNewtype :: t d f a -> BoolMarks if the datatype is actually a newtype
Instances1Datatype
(KnownSymbol n, KnownSymbol m, KnownSymbol p, SingI nt) => Datatype ('MetaData n m p nt)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
Datatype to represent the fixity of a constructor. An infix | declaration directly corresponds to an application of Infix.
Constructors
Instances7Eq, Data, Ord, Read, Show, Generic, …
Eq FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsData FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep Fixity = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Fixity"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"Prefix"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Infix"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Associativity) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))
This variant of Fixity appears at the type level.
Constructors
Instances5SingKind, SingI, DemoteRep, Sing
SingKind FixityIDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSingI 'PrefixIDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics(SingI a, KnownNat n) => SingI ('InfixI a n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype DemoteRep FixityI = FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.Genericsdata SingDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics
Instances270Generic, …
Generic ValueDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalGeneric CCFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric ConcFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric DebugFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric DoCostCentresDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric DoHeapProfileDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric DoTraceDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric GCFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric GiveGCStatsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric HpcFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric MiscFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric ParFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric ProfFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric RTSFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric TickyFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric TraceFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsGeneric GCDetailsDefined in base-4.22.0.0 · GHC.StatsGeneric RTSStatsDefined in base-4.22.0.0 · GHC.StatsGeneric ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalGeneric ClockDefined in clock-0.8.4 · System.ClockGeneric TimeSpecDefined in clock-0.8.4 · System.ClockGeneric SecondsDefined in clock-0.8.4 · System.Clock.SecondsGeneric VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderGeneric ClosureTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.ClosureTypesGeneric AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric VersionDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.VersionGeneric FingerprintDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric ForeignSrcLangDefined in ghc-internal-9.1401.0 · GHC.Internal.ForeignSrcLangGeneric AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric PrimTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric TsoFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric WhatNextDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric WhyBlockedDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric StgInfoTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesGeneric CostCentreDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesGeneric CostCentreStackDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesGeneric IndexTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesGeneric StgTSOProfInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesGeneric ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionGeneric ExtensionDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensionsGeneric CCFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric ConcFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric DebugFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric DoCostCentresDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric DoHeapProfileDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric DoTraceDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric GCFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric GiveGCStatsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric HpcFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric MiscFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric ParFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric ProfFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric RTSFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric TickyFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric TraceFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsGeneric SrcLocDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric GCDetailsDefined in ghc-internal-9.1401.0 · GHC.Internal.StatsGeneric RTSStatsDefined in ghc-internal-9.1401.0 · GHC.Internal.StatsGeneric AnnLookupDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric AnnTargetDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric BangDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric BndrVisDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric BodyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric BytesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric CallconvDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric ClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric ConDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric DecDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric DerivClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric DerivStrategyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric DocLocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric ExpDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric FamilyResultSigDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric FixityDirectionDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric ForeignDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric FunDepDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric GuardDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric InfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric InjectivityAnnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric InlineDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric LitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric LocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric MatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric ModNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric ModuleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric ModuleInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric NameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric NameFlavourDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric NameSpaceDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric NamespaceSpecifierDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric OccNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric OverlapDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric PatDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric PatSynArgsDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric PatSynDirDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric PhasesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric PkgNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric PragmaDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric RangeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric RoleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric RuleBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric RuleMatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric SafetyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric SpecificityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric StmtDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric TyLitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric TySynEqnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric TypeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric TypeFamilyHeadDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric HalfDefined in half-0.3.3 · Numeric.Half.InternalGeneric URIDefined in network-uri-2.6.4.2 · Network.URIGeneric URIAuthDefined in network-uri-2.6.4.2 · Network.URIGeneric OsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesGeneric OsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesGeneric PosixCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesGeneric PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesGeneric WindowsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesGeneric WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesGeneric ModeDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJGeneric StyleDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJGeneric TextDetailsDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJGeneric DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJGeneric ConstructorInfoDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeGeneric ConstructorVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeGeneric DatatypeInfoDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeGeneric DatatypeVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeGeneric FieldStrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeGeneric StrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeGeneric UnpackednessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeGeneric CalendarDiffDaysDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDaysGeneric DayDefined in time-1.15 · Data.Time.Calendar.DaysGeneric MonthDefined in time-1.15 · Data.Time.Calendar.MonthGeneric QuarterDefined in time-1.15 · Data.Time.Calendar.QuarterGeneric QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.QuarterGeneric DayOfWeekDefined in time-1.15 · Data.Time.Calendar.WeekGeneric SystemTimeDefined in time-1.15 · Data.Time.Clock.Internal.SystemTimeGeneric UTCTimeDefined in time-1.15 · Data.Time.Clock.Internal.UTCTimeGeneric UniversalTimeDefined in time-1.15 · Data.Time.Clock.Internal.UniversalTimeGeneric CalendarDiffTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTimeGeneric LocalTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.LocalTimeGeneric TimeOfDayDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeOfDayGeneric TimeZoneDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeZoneGeneric ZonedTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.ZonedTimeGeneric ()Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Complex a)Defined in base-4.22.0.0 · Data.ComplexGeneric (First a)Defined in base-4.22.0.0 · Data.SemigroupGeneric (Last a)Defined in base-4.22.0.0 · Data.SemigroupGeneric (Max a)Defined in base-4.22.0.0 · Data.SemigroupGeneric (Min a)Defined in base-4.22.0.0 · Data.SemigroupGeneric (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupGeneric (SCC vertex)Defined in containers-0.8 · Data.GraphGeneric (Digit a)Defined in containers-0.8 · Data.Sequence.InternalGeneric (Elem a)Defined in containers-0.8 · Data.Sequence.InternalGeneric (FingerTree a)Defined in containers-0.8 · Data.Sequence.InternalGeneric (Node a)Defined in containers-0.8 · Data.Sequence.InternalGeneric (ViewL a)Defined in containers-0.8 · Data.Sequence.InternalGeneric (ViewR a)Defined in containers-0.8 · Data.Sequence.InternalGeneric (PostOrder a)Defined in containers-0.8 · Data.TreeGeneric (Tree a)Defined in containers-0.8 · Data.TreeGeneric (Fix f)Defined in data-fix-0.3.4 · Data.FixGeneric (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityGeneric (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Endo a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListGeneric (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (GenClosure b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric (GenStackField b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric (GenStackFrame b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric (GenStgStackClosure b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresGeneric (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (TyVarBndr flag)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxGeneric (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJGeneric (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeGeneric (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (WrappedMonad m a)Defined in base-4.22.0.0 · Control.ApplicativeGeneric (Arg a b)Defined in base-4.22.0.0 · Data.SemigroupGeneric (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Either a b)Defined in strict-0.5.1 · Data.Strict.EitherGeneric (These a b)Defined in strict-0.5.1 · Data.Strict.TheseGeneric (Pair a b)Defined in strict-0.5.1 · Data.Strict.TupleGeneric (These a b)Defined in these-1.2.1 · Data.TheseGeneric (Lift f a)Defined in transformers-0.6.1.2 · Control.Applicative.LiftGeneric (MaybeT m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeGeneric (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (WrappedArrow a b c)Defined in base-4.22.0.0 · Control.ApplicativeGeneric (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapGeneric (Fix p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixGeneric (Join p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinGeneric (Kleisli m a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowGeneric (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstGeneric (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Tagged s b)Defined in tagged-0.8.11 · Data.TaggedGeneric (These1 f g a)Defined in these-1.2.1 · Data.Functor.TheseGeneric (Backwards f a)Defined in transformers-0.6.1.2 · Control.Applicative.BackwardsGeneric (AccumT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.AccumGeneric (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptGeneric (IdentityT f a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityGeneric (ReaderT r m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderGeneric (SelectT r m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.SelectGeneric (StateT s m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyGeneric (StateT s m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.StrictGeneric (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPSGeneric (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.LazyGeneric (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictGeneric (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.ConstantGeneric (Reverse f a)Defined in transformers-0.6.1.2 · Data.Functor.ReverseGeneric (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Product f g a)Defined in base-4.22.0.0 · Data.Functor.ProductGeneric (Sum f g a)Defined in base-4.22.0.0 · Data.Functor.SumGeneric (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (ContT r m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ContGeneric ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeGeneric (Clown f a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownGeneric (Flip p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.FlipGeneric (Joker g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerGeneric (WrappedBifunctor p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedGeneric (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (RWST r w s m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPSGeneric (RWST r w s m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.LazyGeneric (RWST r w s m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.StrictGeneric ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Product f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.ProductGeneric (Sum p q a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.SumGeneric (a, b, c, d, e, f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Tannen f p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.TannenGeneric (a, b, c, d, e, f, g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e, f, g, h)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (Biff p f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiffGeneric (a, b, c, d, e, f, g, h, i)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e, f, g, h, i, j)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
Instances91Generic1, …
Generic1 ComplexDefined in base-4.22.0.0 · Data.ComplexGeneric1 FirstDefined in base-4.22.0.0 · Data.SemigroupGeneric1 LastDefined in base-4.22.0.0 · Data.SemigroupGeneric1 MaxDefined in base-4.22.0.0 · Data.SemigroupGeneric1 MinDefined in base-4.22.0.0 · Data.SemigroupGeneric1 WrappedMonoidDefined in base-4.22.0.0 · Data.SemigroupGeneric1 SCCDefined in containers-0.8 · Data.GraphGeneric1 DigitDefined in containers-0.8 · Data.Sequence.InternalGeneric1 ElemDefined in containers-0.8 · Data.Sequence.InternalGeneric1 FingerTreeDefined in containers-0.8 · Data.Sequence.InternalGeneric1 NodeDefined in containers-0.8 · Data.Sequence.InternalGeneric1 ViewLDefined in containers-0.8 · Data.Sequence.InternalGeneric1 ViewRDefined in containers-0.8 · Data.Sequence.InternalGeneric1 PostOrderDefined in containers-0.8 · Data.TreeGeneric1 TreeDefined in containers-0.8 · Data.TreeGeneric1 NonEmptyDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 IdentityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityGeneric1 FirstDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric1 LastDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric1 DownDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 DualDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 ProductDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 SumDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 ZipListDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListGeneric1 Par1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 SoloDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 MaybeDefined in strict-0.5.1 · Data.Strict.MaybeGeneric1 []Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor m => Generic1 (MaybeT m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.MaybeGeneric1 ProxyDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 V1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (WrappedMonad m)Defined in base-4.22.0.0 · Control.ApplicativeGeneric1 (Arg a)Defined in base-4.22.0.0 · Data.SemigroupGeneric1 (Either a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple2 a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Either a)Defined in strict-0.5.1 · Data.Strict.EitherGeneric1 (These a)Defined in strict-0.5.1 · Data.Strict.TheseGeneric1 (Pair a)Defined in strict-0.5.1 · Data.Strict.TupleGeneric1 (These a)Defined in these-1.2.1 · Data.TheseGeneric1 (Lift f)Defined in transformers-0.6.1.2 · Control.Applicative.LiftFunctor m => Generic1 (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptGeneric1 (WrappedArrow a b)Defined in base-4.22.0.0 · Control.ApplicativeGeneric1 (Biap bi a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapGeneric1 (Kleisli m a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.ArrowGeneric1 (Const a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstGeneric1 (Ap f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidGeneric1 (Alt f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalGeneric1 (Rec1 f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Char)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Double)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Float)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Int)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Word)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec (Ptr ()))Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple3 a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tagged s)Defined in tagged-0.8.11 · Data.TaggedGeneric1 (These1 f g)Defined in these-1.2.1 · Data.Functor.TheseGeneric1 (Backwards f)Defined in transformers-0.6.1.2 · Control.Applicative.BackwardsGeneric1 (IdentityT f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.IdentityGeneric1 (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderGeneric1 (Constant a)Defined in transformers-0.6.1.2 · Data.Functor.ConstantGeneric1 (Reverse f)Defined in transformers-0.6.1.2 · Data.Functor.ReverseGeneric1 (Product f g)Defined in base-4.22.0.0 · Data.Functor.ProductGeneric1 (Sum f g)Defined in base-4.22.0.0 · Data.Functor.SumGeneric1 (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple4 a b c)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (f :*: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (f :+: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor f => Generic1 (Compose f g)Defined in base-4.22.0.0 · Data.Functor.ComposeFunctor f => Generic1 (f :.: g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Clown f a)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownGeneric1 (Joker g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerGeneric1 (WrappedBifunctor p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedGeneric1 (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple5 a b c d)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Product f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.ProductGeneric1 (Sum p q a)Defined in bifunctors-5.6.3 · Data.Bifunctor.SumGeneric1 (Tuple6 a b c d e)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor f => Generic1 (Tannen f p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.TannenGeneric1 (Tuple7 a b c d e f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple8 a b c d e f g)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (p (f a)) => Generic1 (Biff p f g a)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiffGeneric1 (Tuple9 a b c d e f g h)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple10 a b c d e f g h i)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple11 a b c d e f g h i j)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple12 a b c d e f g h i j k)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple13 a b c d e f g h i j k l)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple14 a b c d e f g h i j k l m)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (Tuple15 a b c d e f g h i j k l m n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
Instances65RecordToPairs, GDeciding, GToJSON', Generic1, GNFData, GBinaryGet, …
(Selector s, GToJSON' enc arity (K1 i t), KeyValuePair enc pairs, ToJSON t) => RecordToPairs enc pairs arity (S1 s (K1 i t))Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONq p => GDeciding q (K1 i p)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericToJSON a => GToJSON' Encoding arity (K1 i a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSON a => GToJSON' Value arity (K1 i a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsNFData a => GNFData arity (K1 i a)Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary a => GBinaryGet (K1 i a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanBinary a => GBinaryPut (K1 i a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanEq c => GEq1 v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd c => GOrd1 v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRead c => GRead1Con v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalShow c => GShow1Con v (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalArbitrary a => RecursivelyShrink (K1 i a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => GCoArbitrary (K1 i a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => GFunction (K1 i a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable a => GHashable arity (K1 i a)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances · orphanFoldableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void (K1 i c)Defined in indexed-traversable-0.1.5 · WithIndexq p => GDeciding1 q (K1 i p)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericFromJSON a => GFromJSON arity (K1 i a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(Selector s, FromJSON a, Generic a, K1 i a ~ Rep a) => RecordFromJSON' arity (S1 s (K1 i a))Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONBifoldable (K1 i)Defined in base-4.22.0.0 · Data.BifoldableBifunctor (K1 i)Defined in base-4.22.0.0 · Data.BifunctorBitraversable (K1 i)Defined in base-4.22.0.0 · Data.BitraversableFunctor (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid c => Applicative (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable (K1 i c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableEq c => Eq1 (K1 i c)Defined in base-4.22.0.0 · Data.Functor.ClassesOrd c => Ord1 (K1 i c)Defined in base-4.22.0.0 · Data.Functor.ClassesRead c => Read1 (K1 i c)Defined in base-4.22.0.0 · Data.Functor.ClassesShow c => Show1 (K1 i c)Defined in base-4.22.0.0 · Data.Functor.ClassesContravariant (K1 i c)Defined in base-4.22.0.0 · Data.Functor.ContravariantIsNullaryCon (K1 i c)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalUniform a => GUniform (K1 i a)Defined in random-1.3.1 · System.Random.InternalUniformRange a => GUniformRange (K1 i a)Defined in random-1.3.1 · System.Random.InternalFinite a => GFinite (K1 _x a)Defined in random-1.3.1 · System.Random.GFiniteGG (K1 i c)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericSemigroup c => Alt (K1 i c)Defined in semigroupoids-6.0.2 · Data.Functor.Altsince 5.3.8Semigroup c => Apply (K1 i c)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassA
K1 i cis not Applicative unless itscis a Monoid, but it is an instance of ApplyExtend (K1 i c)Defined in semigroupoids-6.0.2 · Data.Functor.ExtendMonoid c => Plus (K1 i c)Defined in semigroupoids-6.0.2 · Data.Functor.PlusFilterable (K1 i c)Defined in witherable-0.5 · WitherableWitherable (K1 i c)Defined in witherable-0.5 · WitherableGSubterms (K1 i a) bDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGSubtermsIncl (K1 i a) aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGSubtermsIncl (K1 i a) bDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryIsRecord (K1 i c) TrueDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericAllNullary (K1 i c) FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericEq c => Eq (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Typeable i, Data p, Data c) => Data (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd c => Ord (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead c => Read (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow c => Show (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup c => Semigroup (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid c => Monoid (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq c => GEq (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd c => GOrd (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRead c => GReadCon (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalShow c => GShowCon (K1 i c p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internaltype Rep (K1 i c p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"K1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"K1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unK1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c)))type Rep1 (K1 i c) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"K1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"K1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unK1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c)))type Swizzle (K1 i c) = K1 i cDefined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic
Instances67GDeciding, GToJSON', Generic1, GNFData, GBinaryGet, GBinaryPut, …
GDeciding q f => GDeciding q (M1 i c f)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericGToJSON' enc arity a => GToJSON' enc arity (M1 i c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGNFData arity a => GNFData arity (M1 i c a)Defined in deepseq-1.5.1.0 · Control.DeepSeqGBinaryGet a => GBinaryGet (M1 i c a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGBinaryPut a => GBinaryPut (M1 i c a)Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGEq1 v f => GEq1 v (M1 i c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v f => GOrd1 v (M1 i c f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRecursivelyShrink f => RecursivelyShrink (M1 i c f)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGCoArbitrary f => GCoArbitrary (M1 i c f)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGFunction f => GFunction (M1 i c f)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionGHashable arity a => GHashable arity (M1 i c a)Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances · orphanGDeciding1 q f => GDeciding1 q (M1 i c f)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericGFromJSON arity a => GFromJSON arity (M1 i c a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONRecordFromJSON' arity f => RecordFromJSON' arity (M1 i s f)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONMonad f => Monad (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor f => Functor (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadFix f => MonadFix (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixApplicative f => Applicative (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable f => Foldable (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable f => Traversable (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableAlternative f => Alternative (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadPlus f => MonadPlus (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadZip f => MonadZip (M1 i c f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipFoldable1 f => Foldable1 (M1 i c f)Defined in base-4.22.0.0 · Data.Foldable1Eq1 f => Eq1 (M1 i c f)Defined in base-4.22.0.0 · Data.Functor.ClassesOrd1 f => Ord1 (M1 i c f)Defined in base-4.22.0.0 · Data.Functor.ClassesRead1 f => Read1 (M1 i c f)Defined in base-4.22.0.0 · Data.Functor.ClassesShow1 f => Show1 (M1 i c f)Defined in base-4.22.0.0 · Data.Functor.ClassesContravariant f => Contravariant (M1 i c f)Defined in base-4.22.0.0 · Data.Functor.ContravariantGUniform f => GUniform (M1 i c f)Defined in random-1.3.1 · System.Random.InternalGUniformRange f => GUniformRange (M1 i c f)Defined in random-1.3.1 · System.Random.InternalGFinite a => GFinite (M1 _x _y a)Defined in random-1.3.1 · System.Random.GFiniteDistributive f => Distributive (M1 i c f)Defined in distributive-0.6.3 · Data.DistributiveGDistributive f => GDistributive (M1 i c f)Defined in distributive-0.6.3 · Data.Distributive.GenericDecidable f => Decidable (M1 i c f)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleDivisible f => Divisible (M1 i c f)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleGG f => GG (M1 i c f)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericAlt f => Alt (M1 i c f)Defined in semigroupoids-6.0.2 · Data.Functor.AltApply f => Apply (M1 i t f)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind f => Bind (M1 i c f)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend f => Extend (M1 i t f)Defined in semigroupoids-6.0.2 · Data.Functor.ExtendConclude f => Conclude (M1 i c f)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.ConcludeDecide f => Decide (M1 i c f)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DecideDivise f => Divise (M1 i c f)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DivisePlus f => Plus (M1 i c f)Defined in semigroupoids-6.0.2 · Data.Functor.PlusTraversable1 f => Traversable1 (M1 i c f)Defined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.ClassFilterable f => Filterable (M1 i c f)Defined in witherable-0.5 · WitherableWitherable f => Witherable (M1 i c f)Defined in witherable-0.5 · WitherableGSubterms f a => GSubterms (M1 i c f) aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGSubtermsIncl f a => GSubtermsIncl (M1 i c f) aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryIsRecord (M1 S ('MetaSel 'Nothing u ss ds) f) FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericIsRecord f isRecord => IsRecord (M1 S c f) isRecordDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericAllNullary a allNullary => AllNullary (M1 i c a) allNullaryDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericEq (f p) => Eq (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Data p, Data (f p), Typeable c, Typeable i, Typeable f) => Data (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (f p) => Ord (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (f p) => Read (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (f p) => Show (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (f p) => Semigroup (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid (f p) => Monoid (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGEq (f p) => GEq (M1 i c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (f p) => GOrd (M1 i c f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internaltype Rep (M1 i c f p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"M1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"M1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unM1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))))type Rep1 (M1 i c f) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"M1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"M1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unM1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))type Swizzle (M1 i c f) = M1 i c (Swizzle f)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic
Datatype to represent metadata associated with a datatype (MetaData),
constructor (MetaCons), or field selector (MetaSel).
In
MetaData n m p nt,nis the datatype's name,mis the module in which the datatype is defined,pis the package in which the datatype is defined, andntis'Trueif the datatype is anewtype.In
MetaCons n f s,nis the constructor's name,fis its fixity, andsis'Trueif the constructor contains record selectors.In
MetaSel mn su ss ds, if the field uses record syntax, thenmnis Just the record name. Otherwise,mnis Nothing.suandssare the field's unpackedness and strictness annotations, anddsis the strictness that GHC infers for the field.
Instances3Constructor, Datatype, Selector
(KnownSymbol n, SingI f, SingI r) => Constructor ('MetaCons n f r)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(KnownSymbol n, KnownSymbol m, KnownSymbol p, SingI nt) => Datatype ('MetaData n m p nt)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(SingI mn, SingI su, SingI ss, SingI ds) => Selector ('MetaSel mn su ss ds)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics
Type synonym for encoding recursion (of kind Type)
Generic representation type
Instances270Rep, …
type Rep Value = D1 ('MetaDataDefined in aeson-2.2.5.1 · Data.Aeson.Types.Internal"Value"
"Data.Aeson.Types.Internal"
"aeson-2.2.5.1-Ewt8qJrl9PtHFIoEnsBcoD"
'False) ((C1 ('MetaCons"Object"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Object)) :+: (C1 ('MetaCons"Array"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Array)) :+: C1 ('MetaCons"String"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))) :+: (C1 ('MetaCons"Number"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Scientific)) :+: (C1 ('MetaCons"Bool"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :+: C1 ('MetaCons"Null"
'PrefixI 'False) U1)))type Rep CCFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"CCFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"CCFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"doCostCentres"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DoCostCentres) :*: (S1 ('MetaSel ('Just"profilerTicks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just"msecsPerTick"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))type Rep ConcFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"ConcFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"ConcFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"ctxtSwitchTime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"ctxtSwitchTicks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))type Rep DebugFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"DebugFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"DebugFlags"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"scheduler"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"interpreter"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"weak"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"gccafs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"gc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"nonmoving_gc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"block_alloc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"sanity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: (((S1 ('MetaSel ('Just"stable"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"prof"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"linker"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"apply"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"stm"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"squeeze"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"hpc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"sparks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))type Rep DoCostCentres = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"DoCostCentres"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) ((C1 ('MetaCons"CostCentresNone"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CostCentresSummary"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CostCentresVerbose"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"CostCentresAll"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CostCentresJSON"
'PrefixI 'False) U1)))type Rep DoHeapProfile = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"DoHeapProfile"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (((C1 ('MetaCons"NoHeapProfiling"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByCCS"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"HeapByMod"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"HeapByDescr"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByType"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"HeapByRetainer"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByLDV"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"HeapByClosureType"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"HeapByInfoTable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByEra"
'PrefixI 'False) U1))))type Rep DoTrace = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"DoTrace"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"TraceNone"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"TraceEventLog"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TraceStderr"
'PrefixI 'False) U1))type Rep GCFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"GCFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"GCFlags"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"statsFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: (S1 ('MetaSel ('Just"giveStats"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GiveGCStats) :*: S1 ('MetaSel ('Just"maxStkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))) :*: ((S1 ('MetaSel ('Just"initialStkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"stkChunkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"stkChunkBufferSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"maxHeapSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))) :*: ((S1 ('MetaSel ('Just"minAllocAreaSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"largeAllocLim"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"nurseryChunkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))) :*: ((S1 ('MetaSel ('Just"minOldGenSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"heapSizeSuggestion"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"heapSizeSuggestionAuto"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"oldGenFactor"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double))))) :*: (((S1 ('MetaSel ('Just"returnDecayFactor"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double) :*: (S1 ('MetaSel ('Just"pcFreeHeap"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double) :*: S1 ('MetaSel ('Just"generations"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))) :*: ((S1 ('MetaSel ('Just"squeezeUpdFrames"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"compact"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"compactThreshold"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double) :*: S1 ('MetaSel ('Just"sweep"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just"ringBell"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just"idleGCDelayTime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"doIdleGC"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"heapBase"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"allocLimitGrace"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)) :*: (S1 ('MetaSel ('Just"numa"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"numaMask"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))))))type Rep GiveGCStats = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"GiveGCStats"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) ((C1 ('MetaCons"NoGCStats"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CollectGCStats"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OneLineGCStats"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"SummaryGCStats"
'PrefixI 'False) U1 :+: C1 ('MetaCons"VerboseGCStats"
'PrefixI 'False) U1)))type Rep HpcFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"HpcFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"HpcFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"readTixFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"writeTixFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))type Rep MiscFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"MiscFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"MiscFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"tickInterval"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"installSignalHandlers"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"installSEHHandlers"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just"generateCrashDumpFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just"generateStackTrace"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"machineReadable"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just"disableDelayedOsMemoryReturn"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just"internalCounters"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"linkerAlwaysPic"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just"linkerMemBase"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: (S1 ('MetaSel ('Just"ioManager"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IoManagerFlag) :*: S1 ('MetaSel ('Just"numIoWorkerThreads"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))))))type Rep ParFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"ParFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"ParFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"nCapabilities"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"migrate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"maxLocalSparks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"parGcEnabled"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"parGcGen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))) :*: ((S1 ('MetaSel ('Just"parGcLoadBalancingEnabled"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"parGcLoadBalancingGen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"parGcNoSyncWithIdle"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"parGcThreads"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"setAffinity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))type Rep ProfFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"ProfFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"ProfFlags"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"doHeapProfile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DoHeapProfile) :*: S1 ('MetaSel ('Just"heapProfileInterval"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"heapProfileIntervalTicks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"startHeapProfileAtStartup"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"startTimeProfileAtStartup"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"showCCSOnException"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"automaticEraIncrement"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"maxRetainerSetSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))) :*: (((S1 ('MetaSel ('Just"ccsLength"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"modSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))) :*: (S1 ('MetaSel ('Just"descrSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just"typeSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))) :*: ((S1 ('MetaSel ('Just"ccSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just"ccsSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))) :*: (S1 ('MetaSel ('Just"retainerSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: (S1 ('MetaSel ('Just"bioSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just"eraSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))))))type Rep RTSFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"RTSFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"RTSFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"gcFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GCFlags) :*: S1 ('MetaSel ('Just"concurrentFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConcFlags)) :*: (S1 ('MetaSel ('Just"miscFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MiscFlags) :*: (S1 ('MetaSel ('Just"debugFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DebugFlags) :*: S1 ('MetaSel ('Just"costCentreFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CCFlags)))) :*: ((S1 ('MetaSel ('Just"profilingFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProfFlags) :*: S1 ('MetaSel ('Just"traceFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TraceFlags)) :*: (S1 ('MetaSel ('Just"tickyFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TickyFlags) :*: (S1 ('MetaSel ('Just"parFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParFlags) :*: S1 ('MetaSel ('Just"hpcFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HpcFlags))))))type Rep TickyFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"TickyFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"TickyFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"showTickyStats"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"tickyFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath))))type Rep TraceFlags = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.RTS.Flags"TraceFlags"
"GHC.RTS.Flags"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"TraceFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"tracing"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DoTrace) :*: S1 ('MetaSel ('Just"timestamp"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"traceScheduler"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"traceGc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"traceNonmovingGc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"sparksSampled"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"sparksFull"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"user"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))))type Rep GCDetails = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.Stats"GCDetails"
"GHC.Stats"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"GCDetails"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"gcdetails_gen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"gcdetails_threads"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"gcdetails_allocated_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_live_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"gcdetails_large_objects_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_compact_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"gcdetails_slop_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_mem_in_use_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))) :*: (((S1 ('MetaSel ('Just"gcdetails_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_par_max_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"gcdetails_par_balanced_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_block_fragmentation_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"gcdetails_sync_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gcdetails_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"gcdetails_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"gcdetails_nonmoving_gc_sync_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gcdetails_nonmoving_gc_sync_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)))))))type Rep RTSStats = D1 ('MetaDataDefined in base-4.22.0.0 · GHC.Stats"RTSStats"
"GHC.Stats"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"RTSStats"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"gcs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"major_gcs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"allocated_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"max_live_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"max_large_objects_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"max_compact_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"max_slop_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))) :*: ((S1 ('MetaSel ('Just"max_mem_in_use_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: (S1 ('MetaSel ('Just"cumulative_live_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"par_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"cumulative_par_max_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"cumulative_par_balanced_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"init_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime))))) :*: (((S1 ('MetaSel ('Just"init_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"mutator_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"mutator_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime))) :*: ((S1 ('MetaSel ('Just"gc_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gc_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)))) :*: ((S1 ('MetaSel ('Just"nonmoving_gc_sync_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"nonmoving_gc_sync_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"nonmoving_gc_sync_max_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime))) :*: ((S1 ('MetaSel ('Just"nonmoving_gc_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"nonmoving_gc_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"nonmoving_gc_max_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GCDetails)))))))type Rep ShortByteString = D1 ('MetaDataDefined in bytestring-0.12.2.0 · Data.ByteString.Short.Internal"ShortByteString"
"Data.ByteString.Short.Internal"
"bytestring-0.12.2.0-4676"
'True) (C1 ('MetaCons"ShortByteString"
'PrefixI 'True) (S1 ('MetaSel ('Just"unShortByteString"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteArray)))type Rep Clock = D1 ('MetaDataDefined in clock-0.8.4 · System.Clock"Clock"
"System.Clock"
"clock-0.8.4-BHQ7n91rJ30AnVe9XocsmB"
'False) (((C1 ('MetaCons"Monotonic"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Realtime"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ProcessCPUTime"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ThreadCPUTime"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"MonotonicRaw"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Boottime"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MonotonicCoarse"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RealtimeCoarse"
'PrefixI 'False) U1)))type Rep TimeSpec = D1 ('MetaDataDefined in clock-0.8.4 · System.Clock"TimeSpec"
"System.Clock"
"clock-0.8.4-BHQ7n91rJ30AnVe9XocsmB"
'False) (C1 ('MetaCons"TimeSpec"
'PrefixI 'True) (S1 ('MetaSel ('Just"sec"
) 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int64) :*: S1 ('MetaSel ('Just"nsec"
) 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int64)))type Rep Seconds = D1 ('MetaDataDefined in clock-0.8.4 · System.Clock.Seconds"Seconds"
"System.Clock.Seconds"
"clock-0.8.4-BHQ7n91rJ30AnVe9XocsmB"
'True) (C1 ('MetaCons"Seconds"
'PrefixI 'True) (S1 ('MetaSel ('Just"toTimeSpec"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TimeSpec)))type Rep Void = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Void"
"GHC.Internal.Base"
"ghc-internal"
'False) V1type Rep ByteOrder = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrder"ByteOrder"
"GHC.Internal.ByteOrder"
"ghc-internal"
'False) (C1 ('MetaCons"BigEndian"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LittleEndian"
'PrefixI 'False) U1)type Rep ClosureType = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.ClosureTypes"ClosureType"
"GHC.Internal.ClosureTypes"
"ghc-internal"
'False) ((((((C1 ('MetaCons"INVALID_OBJECT"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CONSTR"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CONSTR_1_0"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CONSTR_0_1"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"CONSTR_2_0"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CONSTR_1_1"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CONSTR_0_2"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CONSTR_NOCAF"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"FUN"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FUN_1_0"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"FUN_0_1"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FUN_2_0"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"FUN_1_1"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FUN_0_2"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"FUN_STATIC"
'PrefixI 'False) U1 :+: C1 ('MetaCons"THUNK"
'PrefixI 'False) U1)))) :+: ((((C1 ('MetaCons"THUNK_1_0"
'PrefixI 'False) U1 :+: C1 ('MetaCons"THUNK_0_1"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"THUNK_2_0"
'PrefixI 'False) U1 :+: C1 ('MetaCons"THUNK_1_1"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"THUNK_0_2"
'PrefixI 'False) U1 :+: C1 ('MetaCons"THUNK_STATIC"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"THUNK_SELECTOR"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BCO"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"AP"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PAP"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"AP_STACK"
'PrefixI 'False) U1 :+: C1 ('MetaCons"IND"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"IND_STATIC"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RET_BCO"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RET_SMALL"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"RET_BIG"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RET_FUN"
'PrefixI 'False) U1)))))) :+: (((((C1 ('MetaCons"UPDATE_FRAME"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CATCH_FRAME"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"UNDERFLOW_FRAME"
'PrefixI 'False) U1 :+: C1 ('MetaCons"STOP_FRAME"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"BLOCKING_QUEUE"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BLACKHOLE"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MVAR_CLEAN"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MVAR_DIRTY"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"TVAR"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ARR_WORDS"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MUT_ARR_PTRS_CLEAN"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MUT_ARR_PTRS_DIRTY"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"MUT_ARR_PTRS_FROZEN_DIRTY"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MUT_ARR_PTRS_FROZEN_CLEAN"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MUT_VAR_CLEAN"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"MUT_VAR_DIRTY"
'PrefixI 'False) U1 :+: C1 ('MetaCons"WEAK"
'PrefixI 'False) U1))))) :+: ((((C1 ('MetaCons"PRIM"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MUT_PRIM"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TSO"
'PrefixI 'False) U1 :+: C1 ('MetaCons"STACK"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"TREC_CHUNK"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ATOMICALLY_FRAME"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CATCH_RETRY_FRAME"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CATCH_STM_FRAME"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"WHITEHOLE"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SMALL_MUT_ARR_PTRS_CLEAN"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"SMALL_MUT_ARR_PTRS_DIRTY"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SMALL_MUT_ARR_PTRS_FROZEN_DIRTY"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"SMALL_MUT_ARR_PTRS_FROZEN_CLEAN"
'PrefixI 'False) U1 :+: C1 ('MetaCons"COMPACT_NFDATA"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CONTINUATION"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ANN_FRAME"
'PrefixI 'False) U1 :+: C1 ('MetaCons"N_CLOSURE_TYPES"
'PrefixI 'False) U1)))))))type Rep All = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"All"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"All"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAll"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))type Rep Any = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"Any"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Any"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAny"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))type Rep Version = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Version"Version"
"GHC.Internal.Data.Version"
"ghc-internal"
'False) (C1 ('MetaCons"Version"
'PrefixI 'True) (S1 ('MetaSel ('Just"versionBranch"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int]) :*: S1 ('MetaSel ('Just"versionTags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])))type Rep Fingerprint = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Fingerprint"
"GHC.Internal.Fingerprint.Type"
"ghc-internal"
'False) (C1 ('MetaCons"Fingerprint"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Word64) :*: S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Word64)))type Rep ForeignSrcLang = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.ForeignSrcLang"ForeignSrcLang"
"GHC.Internal.ForeignSrcLang"
"ghc-internal"
'False) ((C1 ('MetaCons"LangC"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"LangCxx"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LangObjc"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"LangObjcxx"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LangAsm"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LangJs"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RawObject"
'PrefixI 'False) U1)))type Rep Associativity = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Associativity"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"LeftAssociative"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"RightAssociative"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NotAssociative"
'PrefixI 'False) U1))type Rep DecidedStrictness = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"DecidedStrictness"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"DecidedLazy"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"DecidedStrict"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DecidedUnpack"
'PrefixI 'False) U1))type Rep Fixity = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Fixity"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"Prefix"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Infix"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Associativity) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))type Rep SourceStrictness = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"SourceStrictness"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"NoSourceStrictness"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"SourceLazy"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SourceStrict"
'PrefixI 'False) U1))type Rep SourceUnpackedness = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"SourceUnpackedness"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"NoSourceUnpackedness"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"SourceNoUnpack"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SourceUnpack"
'PrefixI 'False) U1))type Rep PrimType = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"PrimType"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) ((C1 ('MetaCons"PInt"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"PWord"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PInt64"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"PWord64"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PAddr"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"PFloat"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PDouble"
'PrefixI 'False) U1)))type Rep TsoFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"TsoFlags"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) (((C1 ('MetaCons"TsoLocked"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TsoBlockx"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TsoInterruptible"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"TsoStoppedOnBreakpoint"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TsoMarked"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"TsoSqueezed"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TsoAllocLimit"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TsoStopNextBreakpoint"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"TsoStopAfterReturn"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TsoFlagsUnknownValue"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))))))type Rep WhatNext = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"WhatNext"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) ((C1 ('MetaCons"ThreadRunGHC"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ThreadInterpret"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ThreadKilled"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ThreadComplete"
'PrefixI 'False) U1 :+: C1 ('MetaCons"WhatNextUnknownValue"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))))type Rep WhyBlocked = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"WhyBlocked"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) (((C1 ('MetaCons"NotBlocked"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"BlockedOnMVar"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BlockedOnMVarRead"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"BlockedOnBlackHole"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BlockedOnRead"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"BlockedOnWrite"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BlockedOnDelay"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"BlockedOnSTM"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"BlockedOnDoProc"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BlockedOnCCall"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"BlockedOnCCall_Interruptible"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BlockedOnMsgThrowTo"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ThreadMigrating"
'PrefixI 'False) U1 :+: C1 ('MetaCons"WhyBlockedUnknownValue"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))))type Rep StgInfoTable = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.Types"StgInfoTable"
"GHC.Internal.Heap.InfoTable.Types"
"ghc-internal"
'False) (C1 ('MetaCons"StgInfoTable"
'PrefixI 'True) ((S1 ('MetaSel ('Just"entry"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe EntryFunPtr)) :*: (S1 ('MetaSel ('Just"ptrs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HalfWord) :*: S1 ('MetaSel ('Just"nptrs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HalfWord))) :*: (S1 ('MetaSel ('Just"tipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ClosureType) :*: (S1 ('MetaSel ('Just"srtlen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HalfWord) :*: S1 ('MetaSel ('Just"code"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ItblCodes))))))type Rep CostCentre = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.Types"CostCentre"
"GHC.Internal.Heap.ProfInfo.Types"
"ghc-internal"
'False) (C1 ('MetaCons"CostCentre"
'PrefixI 'True) (((S1 ('MetaSel ('Just"cc_ccID"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just"cc_label"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just"cc_module"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just"cc_srcloc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))) :*: ((S1 ('MetaSel ('Just"cc_mem_alloc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"cc_time_ticks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)) :*: (S1 ('MetaSel ('Just"cc_is_caf"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"cc_link"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CostCentre))))))type Rep CostCentreStack = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.Types"CostCentreStack"
"GHC.Internal.Heap.ProfInfo.Types"
"ghc-internal"
'False) (C1 ('MetaCons"CostCentreStack"
'PrefixI 'True) (((S1 ('MetaSel ('Just"ccs_ccsID"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Just"ccs_cc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CostCentre) :*: S1 ('MetaSel ('Just"ccs_prevStack"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CostCentreStack)))) :*: (S1 ('MetaSel ('Just"ccs_indexTable"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IndexTable)) :*: (S1 ('MetaSel ('Just"ccs_root"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CostCentreStack)) :*: S1 ('MetaSel ('Just"ccs_depth"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))) :*: ((S1 ('MetaSel ('Just"ccs_scc_count"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: (S1 ('MetaSel ('Just"ccs_selected"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"ccs_time_ticks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word))) :*: (S1 ('MetaSel ('Just"ccs_mem_alloc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: (S1 ('MetaSel ('Just"ccs_inherited_alloc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"ccs_inherited_ticks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word))))))type Rep IndexTable = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.Types"IndexTable"
"GHC.Internal.Heap.ProfInfo.Types"
"ghc-internal"
'False) (C1 ('MetaCons"IndexTable"
'PrefixI 'True) ((S1 ('MetaSel ('Just"it_cc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CostCentre) :*: S1 ('MetaSel ('Just"it_ccs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CostCentreStack))) :*: (S1 ('MetaSel ('Just"it_next"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IndexTable)) :*: S1 ('MetaSel ('Just"it_back_edge"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))type Rep StgTSOProfInfo = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.Types"StgTSOProfInfo"
"GHC.Internal.Heap.ProfInfo.Types"
"ghc-internal"
'True) (C1 ('MetaCons"StgTSOProfInfo"
'PrefixI 'True) (S1 ('MetaSel ('Just"cccs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CostCentreStack))))type Rep ExitCode = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception"ExitCode"
"GHC.Internal.IO.Exception"
"ghc-internal"
'False) (C1 ('MetaCons"ExitSuccess"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExitFailure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))type Rep Extension = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensions"Extension"
"GHC.Internal.LanguageExtensions"
"ghc-internal"
'False) (((((((C1 ('MetaCons"Cpp"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OverlappingInstances"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"UndecidableInstances"
'PrefixI 'False) U1 :+: C1 ('MetaCons"IncoherentInstances"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"UndecidableSuperClasses"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MonomorphismRestriction"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MonoLocalBinds"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeepSubsumption"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"RelaxedPolyRec"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExtendedDefaultRules"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NamedDefaults"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ForeignFunctionInterface"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"UnliftedFFITypes"
'PrefixI 'False) U1 :+: C1 ('MetaCons"InterruptibleFFI"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CApiFFI"
'PrefixI 'False) U1 :+: C1 ('MetaCons"GHCForeignImportPrim"
'PrefixI 'False) U1)))) :+: ((((C1 ('MetaCons"JavaScriptFFI"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ParallelArrays"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"Arrows"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TemplateHaskell"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"TemplateHaskellQuotes"
'PrefixI 'False) U1 :+: C1 ('MetaCons"QualifiedDo"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"QuasiQuotes"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ImplicitParams"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"ImplicitPrelude"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ScopedTypeVariables"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"AllowAmbiguousTypes"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnboxedTuples"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"UnboxedSums"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnliftedNewtypes"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"UnliftedDatatypes"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"BangPatterns"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TypeFamilies"
'PrefixI 'False) U1)))))) :+: (((((C1 ('MetaCons"TypeFamilyDependencies"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TypeInType"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OverloadedStrings"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OverloadedLists"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"NumDecimals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DisambiguateRecordFields"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RecordWildCards"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NamedFieldPuns"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"ViewPatterns"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OrPatterns"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"GADTs"
'PrefixI 'False) U1 :+: C1 ('MetaCons"GADTSyntax"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"NPlusKPatterns"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DoAndIfThenElse"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"BlockArguments"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"RebindableSyntax"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ConstraintKinds"
'PrefixI 'False) U1))))) :+: ((((C1 ('MetaCons"PolyKinds"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DataKinds"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TypeData"
'PrefixI 'False) U1 :+: C1 ('MetaCons"InstanceSigs"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ApplicativeDo"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LinearTypes"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RequiredTypeArguments"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StandaloneDeriving"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"DeriveDataTypeable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"AutoDeriveTypeable"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"DeriveFunctor"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeriveTraversable"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"DeriveFoldable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeriveGeneric"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"DefaultSignatures"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"DeriveAnyClass"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeriveLift"
'PrefixI 'False) U1))))))) :+: ((((((C1 ('MetaCons"DerivingStrategies"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DerivingVia"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TypeSynonymInstances"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FlexibleContexts"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"FlexibleInstances"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ConstrainedClassMethods"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MultiParamTypeClasses"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NullaryTypeClasses"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"FunctionalDependencies"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnicodeSyntax"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ExistentialQuantification"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MagicHash"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"EmptyDataDecls"
'PrefixI 'False) U1 :+: C1 ('MetaCons"KindSignatures"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RoleAnnotations"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ParallelListComp"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TransformListComp"
'PrefixI 'False) U1))))) :+: ((((C1 ('MetaCons"MonadComprehensions"
'PrefixI 'False) U1 :+: C1 ('MetaCons"GeneralizedNewtypeDeriving"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RecursiveDo"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PostfixOperators"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"TupleSections"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PatternGuards"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LiberalTypeSynonyms"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RankNTypes"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"ImpredicativeTypes"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TypeOperators"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ExplicitNamespaces"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PackageImports"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ExplicitForAll"
'PrefixI 'False) U1 :+: C1 ('MetaCons"AlternativeLayoutRule"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"AlternativeLayoutRuleTransitional"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"DatatypeContexts"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NondecreasingIndentation"
'PrefixI 'False) U1)))))) :+: (((((C1 ('MetaCons"RelaxedLayout"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TraditionalRecordSyntax"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LambdaCase"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MultiWayIf"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"BinaryLiterals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NegativeLiterals"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"HexFloatLiterals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DuplicateRecordFields"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"OverloadedLabels"
'PrefixI 'False) U1 :+: C1 ('MetaCons"EmptyCase"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"PatternSynonyms"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PartialTypeSignatures"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"NamedWildCards"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StaticPointers"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TypeApplications"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Strict"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StrictData"
'PrefixI 'False) U1))))) :+: ((((C1 ('MetaCons"EmptyDataDeriving"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NumericUnderscores"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"QuantifiedConstraints"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StarIsType"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ImportQualifiedPost"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CUSKs"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"StandaloneKindSignatures"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LexicalNegation"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"FieldSelectors"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OverloadedRecordDot"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OverloadedRecordUpdate"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TypeAbstractions"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ExtendedLiterals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ListTuplePuns"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MultilineStrings"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ExplicitLevelImports"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ImplicitStagePersistence"
'PrefixI 'False) U1))))))))type Rep CCFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"CCFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"CCFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"doCostCentres"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DoCostCentres) :*: (S1 ('MetaSel ('Just"profilerTicks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just"msecsPerTick"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))type Rep ConcFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"ConcFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"ConcFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"ctxtSwitchTime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"ctxtSwitchTicks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))type Rep DebugFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"DebugFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"DebugFlags"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"scheduler"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"interpreter"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"weak"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"gccafs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"gc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"nonmoving_gc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"block_alloc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"sanity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: (((S1 ('MetaSel ('Just"stable"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"prof"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"linker"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"apply"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"stm"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"squeeze"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"hpc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"sparks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))type Rep DoCostCentres = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"DoCostCentres"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) ((C1 ('MetaCons"CostCentresNone"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CostCentresSummary"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CostCentresVerbose"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"CostCentresAll"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CostCentresJSON"
'PrefixI 'False) U1)))type Rep DoHeapProfile = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"DoHeapProfile"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (((C1 ('MetaCons"NoHeapProfiling"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByCCS"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"HeapByMod"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"HeapByDescr"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByType"
'PrefixI 'False) U1))) :+: ((C1 ('MetaCons"HeapByRetainer"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByLDV"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"HeapByClosureType"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"HeapByInfoTable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"HeapByEra"
'PrefixI 'False) U1))))type Rep DoTrace = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"DoTrace"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"TraceNone"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"TraceEventLog"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TraceStderr"
'PrefixI 'False) U1))type Rep GCFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"GCFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"GCFlags"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"statsFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath)) :*: (S1 ('MetaSel ('Just"giveStats"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GiveGCStats) :*: S1 ('MetaSel ('Just"maxStkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))) :*: ((S1 ('MetaSel ('Just"initialStkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"stkChunkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"stkChunkBufferSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"maxHeapSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))) :*: ((S1 ('MetaSel ('Just"minAllocAreaSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"largeAllocLim"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"nurseryChunkSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))) :*: ((S1 ('MetaSel ('Just"minOldGenSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"heapSizeSuggestion"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"heapSizeSuggestionAuto"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"oldGenFactor"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double))))) :*: (((S1 ('MetaSel ('Just"returnDecayFactor"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double) :*: (S1 ('MetaSel ('Just"pcFreeHeap"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double) :*: S1 ('MetaSel ('Just"generations"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))) :*: ((S1 ('MetaSel ('Just"squeezeUpdFrames"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"compact"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"compactThreshold"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double) :*: S1 ('MetaSel ('Just"sweep"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just"ringBell"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just"idleGCDelayTime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"doIdleGC"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"heapBase"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"allocLimitGrace"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)) :*: (S1 ('MetaSel ('Just"numa"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"numaMask"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))))))type Rep GiveGCStats = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"GiveGCStats"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) ((C1 ('MetaCons"NoGCStats"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CollectGCStats"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OneLineGCStats"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"SummaryGCStats"
'PrefixI 'False) U1 :+: C1 ('MetaCons"VerboseGCStats"
'PrefixI 'False) U1)))type Rep HpcFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"HpcFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"HpcFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"readTixFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"writeTixFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))type Rep MiscFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"MiscFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"MiscFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"tickInterval"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"installSignalHandlers"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"installSEHHandlers"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just"generateCrashDumpFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just"generateStackTrace"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"machineReadable"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))) :*: ((S1 ('MetaSel ('Just"disableDelayedOsMemoryReturn"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just"internalCounters"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"linkerAlwaysPic"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: (S1 ('MetaSel ('Just"linkerMemBase"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: (S1 ('MetaSel ('Just"ioManager"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IoManagerFlag) :*: S1 ('MetaSel ('Just"numIoWorkerThreads"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))))))type Rep ParFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"ParFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"ParFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"nCapabilities"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"migrate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"maxLocalSparks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"parGcEnabled"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"parGcGen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))) :*: ((S1 ('MetaSel ('Just"parGcLoadBalancingEnabled"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"parGcLoadBalancingGen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"parGcNoSyncWithIdle"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"parGcThreads"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"setAffinity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))type Rep ProfFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"ProfFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"ProfFlags"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"doHeapProfile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DoHeapProfile) :*: S1 ('MetaSel ('Just"heapProfileInterval"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"heapProfileIntervalTicks"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"startHeapProfileAtStartup"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"startTimeProfileAtStartup"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"showCCSOnException"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"automaticEraIncrement"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"maxRetainerSetSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))) :*: (((S1 ('MetaSel ('Just"ccsLength"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"modSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))) :*: (S1 ('MetaSel ('Just"descrSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just"typeSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))) :*: ((S1 ('MetaSel ('Just"ccSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just"ccsSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))) :*: (S1 ('MetaSel ('Just"retainerSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: (S1 ('MetaSel ('Just"bioSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)) :*: S1 ('MetaSel ('Just"eraSelector"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))))))type Rep RTSFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"RTSFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"RTSFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"gcFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GCFlags) :*: S1 ('MetaSel ('Just"concurrentFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConcFlags)) :*: (S1 ('MetaSel ('Just"miscFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MiscFlags) :*: (S1 ('MetaSel ('Just"debugFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DebugFlags) :*: S1 ('MetaSel ('Just"costCentreFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CCFlags)))) :*: ((S1 ('MetaSel ('Just"profilingFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ProfFlags) :*: S1 ('MetaSel ('Just"traceFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TraceFlags)) :*: (S1 ('MetaSel ('Just"tickyFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TickyFlags) :*: (S1 ('MetaSel ('Just"parFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParFlags) :*: S1 ('MetaSel ('Just"hpcFlags"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HpcFlags))))))type Rep TickyFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"TickyFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"TickyFlags"
'PrefixI 'True) (S1 ('MetaSel ('Just"showTickyStats"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"tickyFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FilePath))))type Rep TraceFlags = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.Flags"TraceFlags"
"GHC.Internal.RTS.Flags"
"ghc-internal"
'False) (C1 ('MetaCons"TraceFlags"
'PrefixI 'True) (((S1 ('MetaSel ('Just"tracing"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DoTrace) :*: S1 ('MetaSel ('Just"timestamp"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"traceScheduler"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"traceGc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just"traceNonmovingGc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"sparksSampled"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just"sparksFull"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"user"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))))type Rep SrcLoc = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"SrcLoc"
"GHC.Internal.Stack.Types"
"ghc-internal"
'False) (C1 ('MetaCons"SrcLoc"
'PrefixI 'True) ((S1 ('MetaSel ('Just"srcLocPackage"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]) :*: (S1 ('MetaSel ('Just"srcLocModule"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]) :*: S1 ('MetaSel ('Just"srcLocFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]))) :*: ((S1 ('MetaSel ('Just"srcLocStartLine"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Just"srcLocStartCol"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :*: (S1 ('MetaSel ('Just"srcLocEndLine"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Just"srcLocEndCol"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)))))type Rep GCDetails = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Stats"GCDetails"
"GHC.Internal.Stats"
"ghc-internal"
'False) (C1 ('MetaCons"GCDetails"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"gcdetails_gen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"gcdetails_threads"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"gcdetails_allocated_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_live_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"gcdetails_large_objects_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_compact_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"gcdetails_slop_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_mem_in_use_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))) :*: (((S1 ('MetaSel ('Just"gcdetails_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_par_max_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"gcdetails_par_balanced_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"gcdetails_block_fragmentation_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"gcdetails_sync_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gcdetails_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"gcdetails_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"gcdetails_nonmoving_gc_sync_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gcdetails_nonmoving_gc_sync_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)))))))type Rep RTSStats = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Stats"RTSStats"
"GHC.Internal.Stats"
"ghc-internal"
'False) (C1 ('MetaCons"RTSStats"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"gcs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just"major_gcs"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just"allocated_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"max_live_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"max_large_objects_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"max_compact_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"max_slop_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))) :*: ((S1 ('MetaSel ('Just"max_mem_in_use_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: (S1 ('MetaSel ('Just"cumulative_live_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"par_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"cumulative_par_max_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)) :*: (S1 ('MetaSel ('Just"cumulative_par_balanced_copied_bytes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just"init_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime))))) :*: (((S1 ('MetaSel ('Just"init_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"mutator_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"mutator_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime))) :*: ((S1 ('MetaSel ('Just"gc_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gc_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)))) :*: ((S1 ('MetaSel ('Just"nonmoving_gc_sync_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: (S1 ('MetaSel ('Just"nonmoving_gc_sync_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"nonmoving_gc_sync_max_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime))) :*: ((S1 ('MetaSel ('Just"nonmoving_gc_cpu_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"nonmoving_gc_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime)) :*: (S1 ('MetaSel ('Just"nonmoving_gc_max_elapsed_ns"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RtsTime) :*: S1 ('MetaSel ('Just"gc"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GCDetails)))))))type Rep AnnLookup = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"AnnLookup"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"AnnLookupModule"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Module)) :+: C1 ('MetaCons"AnnLookupName"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))type Rep AnnTarget = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"AnnTarget"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"ModuleAnnotation"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"TypeAnnotation"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons"ValueAnnotation"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))))type Rep Bang = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Bang"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Bang"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceUnpackedness) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceStrictness)))type Rep BndrVis = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"BndrVis"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"BndrReq"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BndrInvis"
'PrefixI 'False) U1)type Rep Body = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Body"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"GuardedB"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)])) :+: C1 ('MetaCons"NormalB"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))type Rep Bytes = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Bytes"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Bytes"
'PrefixI 'True) (S1 ('MetaSel ('Just"bytesPtr"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignPtr Word8)) :*: (S1 ('MetaSel ('Just"bytesOffset"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just"bytesSize"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word))))type Rep Callconv = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Callconv"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"CCall"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StdCall"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"CApi"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Prim"
'PrefixI 'False) U1 :+: C1 ('MetaCons"JavaScript"
'PrefixI 'False) U1)))type Rep Clause = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Clause"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Clause"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))))type Rep Con = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Con"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"NormalC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType])) :+: (C1 ('MetaCons"RecC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType])) :+: C1 ('MetaCons"InfixC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType))))) :+: (C1 ('MetaCons"ForallC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con))) :+: (C1 ('MetaCons"GadtC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons"RecGadtC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))type Rep Dec = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Dec"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((((C1 ('MetaCons"FunD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause])) :+: (C1 ('MetaCons"ValD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons"DataD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons"NewtypeD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons"TypeDataD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]))) :+: C1 ('MetaCons"TySynD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))) :+: ((C1 ('MetaCons"ClassD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FunDep]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec])))) :+: (C1 ('MetaCons"InstanceD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Overlap)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons"SigD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons"KiSigD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons"ForeignD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Foreign))) :+: (C1 ('MetaCons"InfixD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fixity) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NamespaceSpecifier) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: C1 ('MetaCons"DefaultD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type])))))) :+: (((C1 ('MetaCons"PragmaD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pragma)) :+: (C1 ('MetaCons"DataFamilyD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)))) :+: C1 ('MetaCons"DataInstD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons"NewtypeInstD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons"TySynInstD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TySynEqn)) :+: C1 ('MetaCons"OpenTypeFamilyD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead))))) :+: ((C1 ('MetaCons"ClosedTypeFamilyD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TySynEqn])) :+: (C1 ('MetaCons"RoleAnnotD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Role])) :+: C1 ('MetaCons"StandaloneDerivD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons"DefaultSigD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons"PatSynD"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynArgs)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynDir) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))) :+: (C1 ('MetaCons"PatSynSigD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: C1 ('MetaCons"ImplicitParamBindD"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))))type Rep DecidedStrictness = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"DecidedStrictness"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"DecidedLazy"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"DecidedStrict"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DecidedUnpack"
'PrefixI 'False) U1))type Rep DerivClause = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"DerivClause"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"DerivClause"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt)))type Rep DerivStrategy = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"DerivStrategy"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"StockStrategy"
'PrefixI 'False) U1 :+: C1 ('MetaCons"AnyclassStrategy"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NewtypeStrategy"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ViaStrategy"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))type Rep DocLoc = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"DocLoc"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"ModuleDoc"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeclDoc"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons"ArgDoc"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons"InstDoc"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))type Rep Exp = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Exp"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (((((C1 ('MetaCons"VarE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons"ConE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons"LitE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons"AppE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))) :+: ((C1 ('MetaCons"AppTypeE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons"InfixE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp))))) :+: (C1 ('MetaCons"UInfixE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons"ParensE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"LamE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))) :+: (((C1 ('MetaCons"LamCaseE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons"LamCasesE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause]))) :+: (C1 ('MetaCons"TupE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: (C1 ('MetaCons"UnboxedTupE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: C1 ('MetaCons"UnboxedSumE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons"CondE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: C1 ('MetaCons"MultiIfE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)]))) :+: (C1 ('MetaCons"LetE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons"CaseE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons"DoE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))))))) :+: ((((C1 ('MetaCons"MDoE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])) :+: C1 ('MetaCons"CompE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))) :+: (C1 ('MetaCons"ArithSeqE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range)) :+: C1 ('MetaCons"ListE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp])))) :+: ((C1 ('MetaCons"SigE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons"RecConE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp]))) :+: (C1 ('MetaCons"RecUpdE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp])) :+: (C1 ('MetaCons"StaticE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"UnboundVarE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))))) :+: (((C1 ('MetaCons"LabelE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons"ImplicitParamVarE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons"GetFieldE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons"ProjectionE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty String))) :+: C1 ('MetaCons"TypedBracketE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))) :+: ((C1 ('MetaCons"TypedSpliceE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"TypeE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons"ForallE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons"ForallVisE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"ConstrainedE"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))))))type Rep FamilyResultSig = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"FamilyResultSig"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"NoSig"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"KindSig"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons"TyVarSig"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TyVarBndr ())))))type Rep Fixity = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Fixity"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Fixity"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FixityDirection)))type Rep FixityDirection = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"FixityDirection"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"InfixL"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"InfixR"
'PrefixI 'False) U1 :+: C1 ('MetaCons"InfixN"
'PrefixI 'False) U1))type Rep Foreign = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Foreign"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"ImportF"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Safety)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: C1 ('MetaCons"ExportF"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))type Rep FunDep = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"FunDep"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"FunDep"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])))type Rep Guard = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Guard"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"NormalG"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"PatG"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])))type Rep Info = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Info"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (((C1 ('MetaCons"ClassI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])) :+: C1 ('MetaCons"ClassOpI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons"TyConI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec)) :+: C1 ('MetaCons"FamilyI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])))) :+: ((C1 ('MetaCons"PrimTyConI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Arity) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Unlifted))) :+: C1 ('MetaCons"DataConI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons"PatSynI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: (C1 ('MetaCons"VarI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Dec)))) :+: C1 ('MetaCons"TyVarI"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))type Rep InjectivityAnn = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"InjectivityAnn"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"InjectivityAnn"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])))type Rep Inline = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Inline"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"NoInline"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Inline"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Inlinable"
'PrefixI 'False) U1))type Rep Lit = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Lit"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (((C1 ('MetaCons"CharL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)) :+: C1 ('MetaCons"StringL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons"IntegerL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons"RationalL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons"IntPrimL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))) :+: ((C1 ('MetaCons"WordPrimL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons"FloatPrimL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons"DoublePrimL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))) :+: (C1 ('MetaCons"StringPrimL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word8])) :+: (C1 ('MetaCons"BytesPrimL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bytes)) :+: C1 ('MetaCons"CharPrimL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char))))))type Rep Loc = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Loc"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Loc"
'PrefixI 'True) ((S1 ('MetaSel ('Just"loc_filename"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just"loc_package"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just"loc_module"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just"loc_start"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos) :*: S1 ('MetaSel ('Just"loc_end"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos)))))type Rep Match = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Match"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Match"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))))type Rep ModName = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"ModName"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'True) (C1 ('MetaCons"ModName"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))type Rep Module = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Module"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Module"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName)))type Rep ModuleInfo = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"ModuleInfo"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"ModuleInfo"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Module])))type Rep Name = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Name"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Name"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OccName) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameFlavour)))type Rep NameFlavour = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"NameFlavour"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"NameS"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NameQ"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))) :+: (C1 ('MetaCons"NameU"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: (C1 ('MetaCons"NameL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: C1 ('MetaCons"NameG"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameSpace) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))))))type Rep NameSpace = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"NameSpace"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"VarName"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DataName"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TcClsName"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FldName"
'PrefixI 'True) (S1 ('MetaSel ('Just"fldParent"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String))))type Rep NamespaceSpecifier = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"NamespaceSpecifier"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"NoNamespaceSpecifier"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"TypeNamespaceSpecifier"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DataNamespaceSpecifier"
'PrefixI 'False) U1))type Rep OccName = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"OccName"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'True) (C1 ('MetaCons"OccName"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))type Rep Overlap = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Overlap"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"Overlappable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Overlapping"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"Overlaps"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Incoherent"
'PrefixI 'False) U1))type Rep Pat = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Pat"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((((C1 ('MetaCons"LitP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons"VarP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons"TupP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: (C1 ('MetaCons"UnboxedTupP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: C1 ('MetaCons"UnboxedSumP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons"ConP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]))) :+: C1 ('MetaCons"InfixP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))) :+: (C1 ('MetaCons"UInfixP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons"ParensP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)) :+: C1 ('MetaCons"TildeP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))))) :+: (((C1 ('MetaCons"BangP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)) :+: C1 ('MetaCons"AsP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons"WildP"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"RecP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldPat])) :+: C1 ('MetaCons"ListP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]))))) :+: ((C1 ('MetaCons"SigP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons"ViewP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons"TypeP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: (C1 ('MetaCons"InvisP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons"OrP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Pat))))))))type Rep PatSynArgs = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"PatSynArgs"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"PrefixPatSyn"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])) :+: (C1 ('MetaCons"InfixPatSyn"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons"RecordPatSyn"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]))))type Rep PatSynDir = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"PatSynDir"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Unidir"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ImplBidir"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExplBidir"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause]))))type Rep Phases = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Phases"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"AllPhases"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"FromPhase"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons"BeforePhase"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))type Rep PkgName = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"PkgName"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'True) (C1 ('MetaCons"PkgName"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))type Rep Pragma = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Pragma"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (((C1 ('MetaCons"InlineP"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Inline)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RuleMatch) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases))) :+: C1 ('MetaCons"OpaqueP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons"SpecialiseEP"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RuleBndr])) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Inline)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases)))) :+: C1 ('MetaCons"SpecialiseInstP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons"RuleP"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RuleBndr]))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases)))) :+: C1 ('MetaCons"AnnP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AnnTarget) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons"LineP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons"CompleteP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Name))) :+: C1 ('MetaCons"SCCP"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))))))type Rep Range = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Range"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"FromR"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"FromThenR"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons"FromToR"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"FromThenToR"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))type Rep Role = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Role"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"NominalR"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RepresentationalR"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"PhantomR"
'PrefixI 'False) U1 :+: C1 ('MetaCons"InferR"
'PrefixI 'False) U1))type Rep RuleBndr = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"RuleBndr"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"RuleVar"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons"TypedRuleVar"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))type Rep RuleMatch = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"RuleMatch"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"ConLike"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FunLike"
'PrefixI 'False) U1)type Rep Safety = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Safety"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"Unsafe"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Safe"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Interruptible"
'PrefixI 'False) U1))type Rep SourceStrictness = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"SourceStrictness"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"NoSourceStrictness"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"SourceLazy"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SourceStrict"
'PrefixI 'False) U1))type Rep SourceUnpackedness = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"SourceUnpackedness"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"NoSourceUnpackedness"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"SourceNoUnpack"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SourceUnpack"
'PrefixI 'False) U1))type Rep Specificity = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Specificity"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"SpecifiedSpec"
'PrefixI 'False) U1 :+: C1 ('MetaCons"InferredSpec"
'PrefixI 'False) U1)type Rep Stmt = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Stmt"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((C1 ('MetaCons"BindS"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons"LetS"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: (C1 ('MetaCons"NoBindS"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons"ParS"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Stmt]])) :+: C1 ('MetaCons"RecS"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])))))type Rep TyLit = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"TyLit"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"NumTyLit"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons"StrTyLit"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons"CharTyLit"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char))))type Rep TySynEqn = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"TySynEqn"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"TySynEqn"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))type Rep Type = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"Type"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) ((((C1 ('MetaCons"ForallT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons"ForallVisT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons"AppT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons"AppKindT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons"SigT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind))) :+: (C1 ('MetaCons"VarT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons"ConT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))))) :+: ((C1 ('MetaCons"PromotedT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: (C1 ('MetaCons"InfixT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons"UInfixT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons"PromotedInfixT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons"PromotedUInfixT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: (C1 ('MetaCons"ParensT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons"TupleT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))))) :+: (((C1 ('MetaCons"UnboxedTupleT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: (C1 ('MetaCons"UnboxedSumT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)) :+: C1 ('MetaCons"ArrowT"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"MulArrowT"
'PrefixI 'False) U1 :+: C1 ('MetaCons"EqualityT"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ListT"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PromotedTupleT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))) :+: ((C1 ('MetaCons"PromotedNilT"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"PromotedConsT"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StarT"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ConstraintT"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LitT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyLit))) :+: (C1 ('MetaCons"WildCardT"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ImplicitParamT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))))type Rep TypeFamilyHead = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"TypeFamilyHead"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"TypeFamilyHead"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FamilyResultSig) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe InjectivityAnn)))))type Rep Bool = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Bool"
"GHC.Internal.Types"
"ghc-internal"
'False) (C1 ('MetaCons"False"
'PrefixI 'False) U1 :+: C1 ('MetaCons"True"
'PrefixI 'False) U1)type Rep Ordering = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Ordering"
"GHC.Internal.Types"
"ghc-internal"
'False) (C1 ('MetaCons"LT"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"EQ"
'PrefixI 'False) U1 :+: C1 ('MetaCons"GT"
'PrefixI 'False) U1))type Rep GeneralCategory = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"GeneralCategory"
"GHC.Internal.Unicode"
"ghc-internal"
'False) ((((C1 ('MetaCons"UppercaseLetter"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"LowercaseLetter"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TitlecaseLetter"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ModifierLetter"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherLetter"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NonSpacingMark"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SpacingCombiningMark"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"EnclosingMark"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DecimalNumber"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LetterNumber"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherNumber"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ConnectorPunctuation"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DashPunctuation"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OpenPunctuation"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ClosePunctuation"
'PrefixI 'False) U1)))) :+: (((C1 ('MetaCons"InitialQuote"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"FinalQuote"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherPunctuation"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"MathSymbol"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CurrencySymbol"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ModifierSymbol"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherSymbol"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"Space"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LineSeparator"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ParagraphSeparator"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Control"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"Format"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Surrogate"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"PrivateUse"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NotAssigned"
'PrefixI 'False) U1)))))type Rep Half = D1 ('MetaDataDefined in half-0.3.3 · Numeric.Half.Internal"Half"
"Numeric.Half.Internal"
"half-0.3.3-41qSmx8ENLn2AGe57u8Djc"
'True) (C1 ('MetaCons"Half"
'PrefixI 'True) (S1 ('MetaSel ('Just"getHalf"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CUShort)))type Rep URI = D1 ('MetaDataDefined in network-uri-2.6.4.2 · Network.URI"URI"
"Network.URI"
"network-uri-2.6.4.2-1QdlAcNSbcxeQT6IyDD14"
'False) (C1 ('MetaCons"URI"
'PrefixI 'True) ((S1 ('MetaSel ('Just"uriScheme"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just"uriAuthority"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe URIAuth))) :*: (S1 ('MetaSel ('Just"uriPath"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just"uriQuery"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just"uriFragment"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))))type Rep URIAuth = D1 ('MetaDataDefined in network-uri-2.6.4.2 · Network.URI"URIAuth"
"Network.URI"
"network-uri-2.6.4.2-1QdlAcNSbcxeQT6IyDD14"
'False) (C1 ('MetaCons"URIAuth"
'PrefixI 'True) (S1 ('MetaSel ('Just"uriUserInfo"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just"uriRegName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just"uriPort"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))type Rep OsChar = D1 ('MetaDataDefined in os-string-2.0.8 · System.OsString.Internal.Types"OsChar"
"System.OsString.Internal.Types"
"os-string-2.0.8-7fdb"
'True) (C1 ('MetaCons"OsChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"getOsChar"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PlatformChar)))type Rep OsString = D1 ('MetaDataDefined in os-string-2.0.8 · System.OsString.Internal.Types"OsString"
"System.OsString.Internal.Types"
"os-string-2.0.8-7fdb"
'True) (C1 ('MetaCons"OsString"
'PrefixI 'True) (S1 ('MetaSel ('Just"getOsString"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PlatformString)))type Rep PosixChar = D1 ('MetaDataDefined in os-string-2.0.8 · System.OsString.Internal.Types"PosixChar"
"System.OsString.Internal.Types"
"os-string-2.0.8-7fdb"
'True) (C1 ('MetaCons"PosixChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"getPosixChar"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))type Rep PosixString = D1 ('MetaDataDefined in os-string-2.0.8 · System.OsString.Internal.Types"PosixString"
"System.OsString.Internal.Types"
"os-string-2.0.8-7fdb"
'True) (C1 ('MetaCons"PosixString"
'PrefixI 'True) (S1 ('MetaSel ('Just"getPosixString"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString)))type Rep WindowsChar = D1 ('MetaDataDefined in os-string-2.0.8 · System.OsString.Internal.Types"WindowsChar"
"System.OsString.Internal.Types"
"os-string-2.0.8-7fdb"
'True) (C1 ('MetaCons"WindowsChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"getWindowsChar"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))type Rep WindowsString = D1 ('MetaDataDefined in os-string-2.0.8 · System.OsString.Internal.Types"WindowsString"
"System.OsString.Internal.Types"
"os-string-2.0.8-7fdb"
'True) (C1 ('MetaCons"WindowsString"
'PrefixI 'True) (S1 ('MetaSel ('Just"getWindowsString"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString)))type Rep Mode = D1 ('MetaDataDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJ"Mode"
"Text.PrettyPrint.Annotated.HughesPJ"
"pretty-1.1.3.6-d0b7"
'False) ((C1 ('MetaCons"PageMode"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ZigZagMode"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LeftMode"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OneLineMode"
'PrefixI 'False) U1))type Rep Style = D1 ('MetaDataDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJ"Style"
"Text.PrettyPrint.Annotated.HughesPJ"
"pretty-1.1.3.6-d0b7"
'False) (C1 ('MetaCons"Style"
'PrefixI 'True) (S1 ('MetaSel ('Just"mode"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Mode) :*: (S1 ('MetaSel ('Just"lineLength"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just"ribbonsPerLine"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Float))))type Rep TextDetails = D1 ('MetaDataDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJ"TextDetails"
"Text.PrettyPrint.Annotated.HughesPJ"
"pretty-1.1.3.6-d0b7"
'False) (C1 ('MetaCons"Chr"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Char)) :+: (C1 ('MetaCons"Str"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons"PStr"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))type Rep Doc = D1 ('MetaDataDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJ"Doc"
"Text.PrettyPrint.HughesPJ"
"pretty-1.1.3.6-d0b7"
'True) (C1 ('MetaCons"Doc"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc ()))))type Rep ConstructorInfo = D1 ('MetaDataDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.Datatype"ConstructorInfo"
"Language.Haskell.TH.Datatype"
"th-abstraction-0.7.2.0-DvRdocXkx9RKWtx5u3FF2b"
'False) (C1 ('MetaCons"ConstructorInfo"
'PrefixI 'True) ((S1 ('MetaSel ('Just"constructorName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Just"constructorVars"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndrUnit]) :*: S1 ('MetaSel ('Just"constructorContext"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt))) :*: (S1 ('MetaSel ('Just"constructorFields"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type]) :*: (S1 ('MetaSel ('Just"constructorStrictness"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldStrictness]) :*: S1 ('MetaSel ('Just"constructorVariant"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConstructorVariant)))))type Rep ConstructorVariant = D1 ('MetaDataDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.Datatype"ConstructorVariant"
"Language.Haskell.TH.Datatype"
"th-abstraction-0.7.2.0-DvRdocXkx9RKWtx5u3FF2b"
'False) (C1 ('MetaCons"NormalConstructor"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"InfixConstructor"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RecordConstructor"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]))))type Rep DatatypeInfo = D1 ('MetaDataDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.Datatype"DatatypeInfo"
"Language.Haskell.TH.Datatype"
"th-abstraction-0.7.2.0-DvRdocXkx9RKWtx5u3FF2b"
'False) (C1 ('MetaCons"DatatypeInfo"
'PrefixI 'True) ((S1 ('MetaSel ('Just"datatypeContext"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Just"datatypeName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Just"datatypeVars"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndrUnit]))) :*: ((S1 ('MetaSel ('Just"datatypeInstTypes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type]) :*: S1 ('MetaSel ('Just"datatypeVariant"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DatatypeVariant)) :*: (S1 ('MetaSel ('Just"datatypeReturnKind"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind) :*: S1 ('MetaSel ('Just"datatypeCons"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ConstructorInfo])))))type Rep DatatypeVariant = D1 ('MetaDataDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.Datatype"DatatypeVariant"
"Language.Haskell.TH.Datatype"
"th-abstraction-0.7.2.0-DvRdocXkx9RKWtx5u3FF2b"
'False) ((C1 ('MetaCons"Datatype"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Newtype"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"DataInstance"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NewtypeInstance"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TypeData"
'PrefixI 'False) U1)))type Rep FieldStrictness = D1 ('MetaDataDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.Datatype"FieldStrictness"
"Language.Haskell.TH.Datatype"
"th-abstraction-0.7.2.0-DvRdocXkx9RKWtx5u3FF2b"
'False) (C1 ('MetaCons"FieldStrictness"
'PrefixI 'True) (S1 ('MetaSel ('Just"fieldUnpackedness"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Unpackedness) :*: S1 ('MetaSel ('Just"fieldStrictness"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Strictness)))type Rep Strictness = D1 ('MetaDataDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.Datatype"Strictness"
"Language.Haskell.TH.Datatype"
"th-abstraction-0.7.2.0-DvRdocXkx9RKWtx5u3FF2b"
'False) (C1 ('MetaCons"UnspecifiedStrictness"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Lazy"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Strict"
'PrefixI 'False) U1))type Rep Unpackedness = D1 ('MetaDataDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.Datatype"Unpackedness"
"Language.Haskell.TH.Datatype"
"th-abstraction-0.7.2.0-DvRdocXkx9RKWtx5u3FF2b"
'False) (C1 ('MetaCons"UnspecifiedUnpackedness"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"NoUnpack"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Unpack"
'PrefixI 'False) U1))type Rep CalendarDiffDays = D1 ('MetaDataDefined in time-1.15 · Data.Time.Calendar.CalendarDiffDays"CalendarDiffDays"
"Data.Time.Calendar.CalendarDiffDays"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"CalendarDiffDays"
'PrefixI 'True) (S1 ('MetaSel ('Just"cdMonths"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just"cdDays"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))type Rep Day = D1 ('MetaDataDefined in time-1.15 · Data.Time.Calendar.Days"Day"
"Data.Time.Calendar.Days"
"time-1.15-b4d3"
'True) (C1 ('MetaCons"ModifiedJulianDay"
'PrefixI 'True) (S1 ('MetaSel ('Just"toModifiedJulianDay"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))type Rep Month = D1 ('MetaDataDefined in time-1.15 · Data.Time.Calendar.Month"Month"
"Data.Time.Calendar.Month"
"time-1.15-b4d3"
'True) (C1 ('MetaCons"MkMonth"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))type Rep Quarter = D1 ('MetaDataDefined in time-1.15 · Data.Time.Calendar.Quarter"Quarter"
"Data.Time.Calendar.Quarter"
"time-1.15-b4d3"
'True) (C1 ('MetaCons"MkQuarter"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))type Rep QuarterOfYear = D1 ('MetaDataDefined in time-1.15 · Data.Time.Calendar.Quarter"QuarterOfYear"
"Data.Time.Calendar.Quarter"
"time-1.15-b4d3"
'False) ((C1 ('MetaCons"Q1"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Q2"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"Q3"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Q4"
'PrefixI 'False) U1))type Rep DayOfWeek = D1 ('MetaDataDefined in time-1.15 · Data.Time.Calendar.Week"DayOfWeek"
"Data.Time.Calendar.Week"
"time-1.15-b4d3"
'False) ((C1 ('MetaCons"Monday"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Tuesday"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Wednesday"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"Thursday"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Friday"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"Saturday"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Sunday"
'PrefixI 'False) U1)))type Rep SystemTime = D1 ('MetaDataDefined in time-1.15 · Data.Time.Clock.Internal.SystemTime"SystemTime"
"Data.Time.Clock.Internal.SystemTime"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"MkSystemTime"
'PrefixI 'True) (S1 ('MetaSel ('Just"systemSeconds"
) 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int64) :*: S1 ('MetaSel ('Just"systemNanoseconds"
) 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Word32)))type Rep UTCTime = D1 ('MetaDataDefined in time-1.15 · Data.Time.Clock.Internal.UTCTime"UTCTime"
"Data.Time.Clock.Internal.UTCTime"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"UTCTime"
'PrefixI 'True) (S1 ('MetaSel ('Just"utctDay"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Day) :*: S1 ('MetaSel ('Just"utctDayTime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DiffTime)))type Rep UniversalTime = D1 ('MetaDataDefined in time-1.15 · Data.Time.Clock.Internal.UniversalTime"UniversalTime"
"Data.Time.Clock.Internal.UniversalTime"
"time-1.15-b4d3"
'True) (C1 ('MetaCons"ModJulianDate"
'PrefixI 'True) (S1 ('MetaSel ('Just"getModJulianDate"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))type Rep CalendarDiffTime = D1 ('MetaDataDefined in time-1.15 · Data.Time.LocalTime.Internal.CalendarDiffTime"CalendarDiffTime"
"Data.Time.LocalTime.Internal.CalendarDiffTime"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"CalendarDiffTime"
'PrefixI 'True) (S1 ('MetaSel ('Just"ctMonths"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just"ctTime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NominalDiffTime)))type Rep LocalTime = D1 ('MetaDataDefined in time-1.15 · Data.Time.LocalTime.Internal.LocalTime"LocalTime"
"Data.Time.LocalTime.Internal.LocalTime"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"LocalTime"
'PrefixI 'True) (S1 ('MetaSel ('Just"localDay"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Day) :*: S1 ('MetaSel ('Just"localTimeOfDay"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TimeOfDay)))type Rep TimeOfDay = D1 ('MetaDataDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeOfDay"TimeOfDay"
"Data.Time.LocalTime.Internal.TimeOfDay"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"TimeOfDay"
'PrefixI 'True) (S1 ('MetaSel ('Just"todHour"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Just"todMin"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just"todSec"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pico))))type Rep TimeZone = D1 ('MetaDataDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeZone"TimeZone"
"Data.Time.LocalTime.Internal.TimeZone"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"TimeZone"
'PrefixI 'True) (S1 ('MetaSel ('Just"timeZoneMinutes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Just"timeZoneSummerOnly"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just"timeZoneName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))type Rep ZonedTime = D1 ('MetaDataDefined in time-1.15 · Data.Time.LocalTime.Internal.ZonedTime"ZonedTime"
"Data.Time.LocalTime.Internal.ZonedTime"
"time-1.15-b4d3"
'False) (C1 ('MetaCons"ZonedTime"
'PrefixI 'True) (S1 ('MetaSel ('Just"zonedTimeToLocalTime"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LocalTime) :*: S1 ('MetaSel ('Just"zonedTimeZone"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TimeZone)))type Rep (WrappedArrow a b c) = D1 ('MetaDataDefined in base-4.22.0.0 · Control.Applicative"WrappedArrow"
"Control.Applicative"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"WrapArrow"
'PrefixI 'True) (S1 ('MetaSel ('Just"unwrapArrow"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a b c))))type Rep (WrappedMonad m a) = D1 ('MetaDataDefined in base-4.22.0.0 · Control.Applicative"WrappedMonad"
"Control.Applicative"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"WrapMonad"
'PrefixI 'True) (S1 ('MetaSel ('Just"unwrapMonad"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m a))))type Rep (Complex a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Complex"Complex"
"Data.Complex"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons":+"
('InfixI 'NotAssociative6
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))type Rep (Compose f g a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Functor.Compose"Compose"
"Data.Functor.Compose"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Compose"
'PrefixI 'True) (S1 ('MetaSel ('Just"getCompose"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (g a)))))type Rep (Product f g a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Functor.Product"Product"
"Data.Functor.Product"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"Pair"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g a))))type Rep (Sum f g a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Functor.Sum"Sum"
"Data.Functor.Sum"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"InL"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))) :+: C1 ('MetaCons"InR"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g a))))type Rep (Arg a b) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"Arg"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'False) (C1 ('MetaCons"Arg"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))type Rep (First a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"First"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Last a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"Last"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Max a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"Max"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Max"
'PrefixI 'True) (S1 ('MetaSel ('Just"getMax"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Min a) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"Min"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"Min"
'PrefixI 'True) (S1 ('MetaSel ('Just"getMin"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (WrappedMonoid m) = D1 ('MetaDataDefined in base-4.22.0.0 · Data.Semigroup"WrappedMonoid"
"Data.Semigroup"
"base-4.22.0.0-ed85"
'True) (C1 ('MetaCons"WrapMonoid"
'PrefixI 'True) (S1 ('MetaSel ('Just"unwrapMonoid"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m)))type Rep (Biap bi a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Biap"Biap"
"Data.Bifunctor.Biap"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"Biap"
'PrefixI 'True) (S1 ('MetaSel ('Just"getBiap"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (bi a b))))type Rep (Biff p f g a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Biff"Biff"
"Data.Bifunctor.Biff"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"Biff"
'PrefixI 'True) (S1 ('MetaSel ('Just"runBiff"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (p (f a) (g b)))))type Rep (Clown f a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Clown"Clown"
"Data.Bifunctor.Clown"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"Clown"
'PrefixI 'True) (S1 ('MetaSel ('Just"runClown"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep (Fix p a) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Fix"Fix"
"Data.Bifunctor.Fix"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"In"
'PrefixI 'True) (S1 ('MetaSel ('Just"out"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (p (Fix p a) a))))type Rep (Flip p a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Flip"Flip"
"Data.Bifunctor.Flip"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"Flip"
'PrefixI 'True) (S1 ('MetaSel ('Just"runFlip"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (p b a))))type Rep (Join p a) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Join"Join"
"Data.Bifunctor.Join"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"Join"
'PrefixI 'True) (S1 ('MetaSel ('Just"runJoin"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (p a a))))type Rep (Joker g a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Joker"Joker"
"Data.Bifunctor.Joker"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"Joker"
'PrefixI 'True) (S1 ('MetaSel ('Just"runJoker"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g b))))type Rep (Product f g a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Product"Product"
"Data.Bifunctor.Product"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'False) (C1 ('MetaCons"Pair"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a b)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g a b))))type Rep (Sum p q a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Sum"Sum"
"Data.Bifunctor.Sum"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'False) (C1 ('MetaCons"L2"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (p a b))) :+: C1 ('MetaCons"R2"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (q a b))))type Rep (Tannen f p a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Tannen"Tannen"
"Data.Bifunctor.Tannen"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"Tannen"
'PrefixI 'True) (S1 ('MetaSel ('Just"runTannen"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (p a b)))))type Rep (WrappedBifunctor p a b) = D1 ('MetaDataDefined in bifunctors-5.6.3 · Data.Bifunctor.Wrapped"WrappedBifunctor"
"Data.Bifunctor.Wrapped"
"bifunctors-5.6.3-IamvkOq4FlF52CZiHYHpP9"
'True) (C1 ('MetaCons"WrapBifunctor"
'PrefixI 'True) (S1 ('MetaSel ('Just"unwrapBifunctor"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (p a b))))type Rep (SCC vertex) = D1 ('MetaDataDefined in containers-0.8 · Data.Graph"SCC"
"Data.Graph"
"containers-0.8-25b0"
'False) (C1 ('MetaCons"AcyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 vertex)) :+: C1 ('MetaCons"NECyclicSCC"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 (NonEmpty vertex))))type Rep (Digit a) = D1 ('MetaDataDefined in containers-0.8 · Data.Sequence.Internal"Digit"
"Data.Sequence.Internal"
"containers-0.8-25b0"
'False) ((C1 ('MetaCons"One"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons"Two"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: (C1 ('MetaCons"Three"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons"Four"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))))type Rep (Elem a) = D1 ('MetaDataDefined in containers-0.8 · Data.Sequence.Internal"Elem"
"Data.Sequence.Internal"
"containers-0.8-25b0"
'True) (C1 ('MetaCons"Elem"
'PrefixI 'True) (S1 ('MetaSel ('Just"getElem"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (FingerTree a) = D1 ('MetaDataDefined in containers-0.8 · Data.Sequence.Internal"FingerTree"
"Data.Sequence.Internal"
"containers-0.8-25b0"
'False) (C1 ('MetaCons"EmptyT"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"Single"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons"Deep"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Digit a))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FingerTree (Node a))) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Digit a))))))type Rep (Node a) = D1 ('MetaDataDefined in containers-0.8 · Data.Sequence.Internal"Node"
"Data.Sequence.Internal"
"containers-0.8-25b0"
'False) (C1 ('MetaCons"Node2"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) :+: C1 ('MetaCons"Node3"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))type Rep (ViewL a) = D1 ('MetaDataDefined in containers-0.8 · Data.Sequence.Internal"ViewL"
"Data.Sequence.Internal"
"containers-0.8-25b0"
'False) (C1 ('MetaCons"EmptyL"
'PrefixI 'False) U1 :+: C1 ('MetaCons":<"
('InfixI 'RightAssociative5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq a))))type Rep (ViewR a) = D1 ('MetaDataDefined in containers-0.8 · Data.Sequence.Internal"ViewR"
"Data.Sequence.Internal"
"containers-0.8-25b0"
'False) (C1 ('MetaCons"EmptyR"
'PrefixI 'False) U1 :+: C1 ('MetaCons":>"
('InfixI 'LeftAssociative5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq a)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (PostOrder a) = D1 ('MetaDataDefined in containers-0.8 · Data.Tree"PostOrder"
"Data.Tree"
"containers-0.8-25b0"
'True) (C1 ('MetaCons"PostOrder"
'PrefixI 'True) (S1 ('MetaSel ('Just"unPostOrder"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tree a))))type Rep (Tree a) = D1 ('MetaDataDefined in containers-0.8 · Data.Tree"Tree"
"Data.Tree"
"containers-0.8-25b0"
'False) (C1 ('MetaCons"Node"
'PrefixI 'True) (S1 ('MetaSel ('Just"rootLabel"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just"subForest"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Tree a])))type Rep (Fix f) = D1 ('MetaDataDefined in data-fix-0.3.4 · Data.Fix"Fix"
"Data.Fix"
"data-fix-0.3.4-Jx32jgUCBT36PIIgO2og6N"
'True) (C1 ('MetaCons"Fix"
'PrefixI 'True) (S1 ('MetaSel ('Just"unFix"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (Fix f)))))type Rep (NonEmpty a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"NonEmpty"
"GHC.Internal.Base"
"ghc-internal"
'False) (C1 ('MetaCons":|"
('InfixI 'RightAssociative5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))type Rep (Kleisli m a b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Arrow"Kleisli"
"GHC.Internal.Control.Arrow"
"ghc-internal"
'True) (C1 ('MetaCons"Kleisli"
'PrefixI 'True) (S1 ('MetaSel ('Just"runKleisli"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a -> m b))))type Rep (Either a b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Either"
"GHC.Internal.Data.Either"
"ghc-internal"
'False) (C1 ('MetaCons"Left"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons"Right"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))type Rep (Const a b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Const"Const"
"GHC.Internal.Data.Functor.Const"
"ghc-internal"
'True) (C1 ('MetaCons"Const"
'PrefixI 'True) (S1 ('MetaSel ('Just"getConst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Identity a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Identity"Identity"
"GHC.Internal.Data.Functor.Identity"
"ghc-internal"
'True) (C1 ('MetaCons"Identity"
'PrefixI 'True) (S1 ('MetaSel ('Just"runIdentity"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Ap f a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid"Ap"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Ap"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAp"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep (First a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid"First"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"First"
'PrefixI 'True) (S1 ('MetaSel ('Just"getFirst"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))type Rep (Last a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Monoid"Last"
"GHC.Internal.Data.Monoid"
"ghc-internal"
'True) (C1 ('MetaCons"Last"
'PrefixI 'True) (S1 ('MetaSel ('Just"getLast"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))type Rep (Down a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Down"
"GHC.Internal.Data.Ord"
"ghc-internal"
'True) (C1 ('MetaCons"Down"
'PrefixI 'True) (S1 ('MetaSel ('Just"getDown"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Proxy t) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Proxy"
"GHC.Internal.Data.Proxy"
"ghc-internal"
'False) (C1 ('MetaCons"Proxy"
'PrefixI 'False) U1)type Rep (Alt f a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"Alt"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Alt"
'PrefixI 'True) (S1 ('MetaSel ('Just"getAlt"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep (Dual a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"Dual"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Dual"
'PrefixI 'True) (S1 ('MetaSel ('Just"getDual"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Endo a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"Endo"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Endo"
'PrefixI 'True) (S1 ('MetaSel ('Just"appEndo"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a -> a))))type Rep (Product a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"Product"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Product"
'PrefixI 'True) (S1 ('MetaSel ('Just"getProduct"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Sum a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.Internal"Sum"
"GHC.Internal.Data.Semigroup.Internal"
"ghc-internal"
'True) (C1 ('MetaCons"Sum"
'PrefixI 'True) (S1 ('MetaSel ('Just"getSum"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (ZipList a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipList"ZipList"
"GHC.Internal.Functor.ZipList"
"ghc-internal"
'True) (C1 ('MetaCons"ZipList"
'PrefixI 'True) (S1 ('MetaSel ('Just"getZipList"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))type Rep (K1 i c p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"K1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"K1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unK1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c)))type Rep (M1 i c f p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"M1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"M1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unM1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))))type Rep (Par1 p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Par1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"Par1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unPar1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 p)))type Rep (Rec1 f p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Rec1"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"Rec1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unRec1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))))type Rep (U1 p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"U1"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"U1"
'PrefixI 'False) U1)type Rep (URec Char p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"uChar#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UChar))type Rep (URec Double p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UDouble"
'PrefixI 'True) (S1 ('MetaSel ('Just"uDouble#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UDouble))type Rep (URec Float p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UFloat"
'PrefixI 'True) (S1 ('MetaSel ('Just"uFloat#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UFloat))type Rep (URec Int p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UInt"
'PrefixI 'True) (S1 ('MetaSel ('Just"uInt#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))type Rep (URec Word p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UWord"
'PrefixI 'True) (S1 ('MetaSel ('Just"uWord#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UWord))type Rep (URec (Ptr ()) p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UAddr"
'PrefixI 'True) (S1 ('MetaSel ('Just"uAddr#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UAddr))type Rep (V1 p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"V1"
"GHC.Internal.Generics"
"ghc-internal"
'False) V1type Rep (GenClosure b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"GenClosure"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) ((((C1 ('MetaCons"ConstrClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"ptrArgs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b]) :*: S1 ('MetaSel ('Just"dataArgs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Word]))) :*: (S1 ('MetaSel ('Just"pkg"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String) :*: (S1 ('MetaSel ('Just"modl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String) :*: S1 ('MetaSel ('Just"name"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String)))) :+: (C1 ('MetaCons"FunClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"ptrArgs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b]) :*: S1 ('MetaSel ('Just"dataArgs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Word]))) :+: C1 ('MetaCons"ThunkClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"ptrArgs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b]) :*: S1 ('MetaSel ('Just"dataArgs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Word]))))) :+: ((C1 ('MetaCons"SelectorClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"selectee"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :+: C1 ('MetaCons"PAPClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"arity"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 HalfWord)) :*: (S1 ('MetaSel ('Just"n_args"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 HalfWord) :*: (S1 ('MetaSel ('Just"fun"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"payload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b]))))) :+: (C1 ('MetaCons"APClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"arity"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 HalfWord)) :*: (S1 ('MetaSel ('Just"n_args"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 HalfWord) :*: (S1 ('MetaSel ('Just"fun"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"payload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b])))) :+: C1 ('MetaCons"APStackClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"fun"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"payload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b])))))) :+: ((C1 ('MetaCons"IndClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"indirectee"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :+: (C1 ('MetaCons"BCOClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"instrs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"literals"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))) :*: ((S1 ('MetaSel ('Just"bcoptrs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"arity"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 HalfWord)) :*: (S1 ('MetaSel ('Just"size"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 HalfWord) :*: S1 ('MetaSel ('Just"bitmap"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Word])))) :+: C1 ('MetaCons"BlackholeClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"indirectee"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)))) :+: ((C1 ('MetaCons"ArrWordsClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"bytes"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word) :*: S1 ('MetaSel ('Just"arrWords"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Word]))) :+: C1 ('MetaCons"MutArrClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"mccPtrs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word)) :*: (S1 ('MetaSel ('Just"mccSize"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word) :*: S1 ('MetaSel ('Just"mccPayload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b])))) :+: (C1 ('MetaCons"SmallMutArrClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"mccPtrs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word) :*: S1 ('MetaSel ('Just"mccPayload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b]))) :+: C1 ('MetaCons"MVarClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"queueHead"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :*: (S1 ('MetaSel ('Just"queueTail"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"value"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))))))) :+: (((C1 ('MetaCons"MutVarClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"var"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :+: (C1 ('MetaCons"BlockingQueueClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"link"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :*: (S1 ('MetaSel ('Just"blackHole"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: (S1 ('MetaSel ('Just"owner"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"queue"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)))) :+: C1 ('MetaCons"WeakClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"cfinalizers"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"key"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))) :*: (S1 ('MetaSel ('Just"value"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: (S1 ('MetaSel ('Just"finalizer"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"weakLink"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe b))))))) :+: ((C1 ('MetaCons"TSOClosure"
'PrefixI 'True) ((((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"link"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :*: (S1 ('MetaSel ('Just"global_link"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"tsoStack"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))) :*: ((S1 ('MetaSel ('Just"trec"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"blocked_exceptions"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :*: (S1 ('MetaSel ('Just"bq"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"thread_label"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe b))))) :*: (((S1 ('MetaSel ('Just"what_next"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WhatNext) :*: S1 ('MetaSel ('Just"why_blocked"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 WhyBlocked)) :*: (S1 ('MetaSel ('Just"flags"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [TsoFlags]) :*: S1 ('MetaSel ('Just"threadId"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word64))) :*: ((S1 ('MetaSel ('Just"saved_errno"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word32) :*: S1 ('MetaSel ('Just"tso_dirty"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"alloc_limit"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int64) :*: (S1 ('MetaSel ('Just"tot_stack_size"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word32) :*: S1 ('MetaSel ('Just"prof"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe StgTSOProfInfo))))))) :+: C1 ('MetaCons"StackClosure"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"stack_size"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just"stack_dirty"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word8) :*: S1 ('MetaSel ('Just"stack_marking"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word8)))) :+: (C1 ('MetaCons"IntClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ptipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrimType) :*: S1 ('MetaSel ('Just"intVal"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :+: C1 ('MetaCons"WordClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ptipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrimType) :*: S1 ('MetaSel ('Just"wordVal"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word))))) :+: (((C1 ('MetaCons"Int64Closure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ptipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrimType) :*: S1 ('MetaSel ('Just"int64Val"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int64)) :+: C1 ('MetaCons"Word64Closure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ptipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrimType) :*: S1 ('MetaSel ('Just"word64Val"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word64))) :+: (C1 ('MetaCons"AddrClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ptipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrimType) :*: S1 ('MetaSel ('Just"addrVal"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 (Ptr ()))) :+: C1 ('MetaCons"FloatClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ptipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrimType) :*: S1 ('MetaSel ('Just"floatVal"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Float)))) :+: ((C1 ('MetaCons"DoubleClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ptipe"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PrimType) :*: S1 ('MetaSel ('Just"doubleVal"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Double)) :+: C1 ('MetaCons"OtherClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"hvalues"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [b]) :*: S1 ('MetaSel ('Just"rawWords"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Word])))) :+: (C1 ('MetaCons"UnsupportedClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable)) :+: C1 ('MetaCons"UnknownTypeWordSizedPrimitive"
'PrefixI 'True) (S1 ('MetaSel ('Just"wordVal"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word)))))))type Rep (GenStackField b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"GenStackField"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) (C1 ('MetaCons"StackWord"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word)) :+: C1 ('MetaCons"StackBox"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)))type Rep (GenStackFrame b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"GenStackFrame"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) (((C1 ('MetaCons"UpdateFrame"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"updatee"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :+: (C1 ('MetaCons"CatchFrame"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"handler"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :+: C1 ('MetaCons"CatchStmFrame"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"catchFrameCode"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"handler"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))))) :+: (C1 ('MetaCons"CatchRetryFrame"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"running_alt_code"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word)) :*: (S1 ('MetaSel ('Just"first_code"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"alt_code"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))) :+: (C1 ('MetaCons"AtomicallyFrame"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"atomicallyFrameCode"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"result"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))) :+: C1 ('MetaCons"UnderflowFrame"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"nextChunk"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (GenStgStackClosure b)))))) :+: ((C1 ('MetaCons"StopFrame"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable)) :+: (C1 ('MetaCons"RetSmall"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"stack_payload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [GenStackField b])) :+: C1 ('MetaCons"RetBig"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"stack_payload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [GenStackField b])))) :+: (C1 ('MetaCons"RetFun"
'PrefixI 'True) ((S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"retFunSize"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word)) :*: (S1 ('MetaSel ('Just"retFunFun"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"retFunPayload"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [GenStackField b]))) :+: (C1 ('MetaCons"RetBCO"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"bco"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b) :*: S1 ('MetaSel ('Just"bcoArgs"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [GenStackField b]))) :+: C1 ('MetaCons"AnnFrame"
'PrefixI 'True) (S1 ('MetaSel ('Just"info_tbl"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: S1 ('MetaSel ('Just"annotation"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))))))type Rep (GenStgStackClosure b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.Closures"GenStgStackClosure"
"GHC.Internal.Heap.Closures"
"ghc-internal"
'False) (C1 ('MetaCons"GenStgStackClosure"
'PrefixI 'True) (S1 ('MetaSel ('Just"ssc_info"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 StgInfoTable) :*: (S1 ('MetaSel ('Just"ssc_stack_size"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Word32) :*: S1 ('MetaSel ('Just"ssc_stack"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [GenStackFrame b]))))type Rep (Maybe a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (TyVarBndr flag) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.Syntax"TyVarBndr"
"GHC.Internal.TH.Syntax"
"ghc-internal"
'False) (C1 ('MetaCons"PlainTV"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag)) :+: C1 ('MetaCons"KindedTV"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind))))type Rep (Doc a) = D1 ('MetaDataDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJ"Doc"
"Text.PrettyPrint.Annotated.HughesPJ"
"pretty-1.1.3.6-d0b7"
'False) (((C1 ('MetaCons"Empty"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NilAbove"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a)))) :+: (C1 ('MetaCons"TextBeside"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AnnotDetails a)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a))) :+: C1 ('MetaCons"Nest"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'SourceUnpack 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a))))) :+: ((C1 ('MetaCons"Union"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a))) :+: C1 ('MetaCons"NoDoc"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"Beside"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a)))) :+: C1 ('MetaCons"Above"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Doc a)))))))type Rep (Either a b) = D1 ('MetaDataDefined in strict-0.5.1 · Data.Strict.Either"Either"
"Data.Strict.Either"
"strict-0.5.1-8H54RpQxu8P9EazkT5hMAA"
'False) (C1 ('MetaCons"Left"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: C1 ('MetaCons"Right"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)))type Rep (Maybe a) = D1 ('MetaDataDefined in strict-0.5.1 · Data.Strict.Maybe"Maybe"
"Data.Strict.Maybe"
"strict-0.5.1-8H54RpQxu8P9EazkT5hMAA"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))type Rep (These a b) = D1 ('MetaDataDefined in strict-0.5.1 · Data.Strict.These"These"
"Data.Strict.These"
"strict-0.5.1-8H54RpQxu8P9EazkT5hMAA"
'False) (C1 ('MetaCons"This"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: (C1 ('MetaCons"That"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)) :+: C1 ('MetaCons"These"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b))))type Rep (Pair a b) = D1 ('MetaDataDefined in strict-0.5.1 · Data.Strict.Tuple"Pair"
"Data.Strict.Tuple"
"strict-0.5.1-8H54RpQxu8P9EazkT5hMAA"
'False) (C1 ('MetaCons":!:"
('InfixI 'NotAssociative2
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 b)))type Rep (Tagged s b) = D1 ('MetaDataDefined in tagged-0.8.11 · Data.Tagged"Tagged"
"Data.Tagged"
"tagged-0.8.11-BryuIjx1Bsh1HTWEIIbwuM"
'True) (C1 ('MetaCons"Tagged"
'PrefixI 'True) (S1 ('MetaSel ('Just"unTagged"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))type Rep (These1 f g a) = D1 ('MetaDataDefined in these-1.2.1 · Data.Functor.These"These1"
"Data.Functor.These"
"these-1.2.1-CO2ghMwyXOO5u3eAGM6JNx"
'False) (C1 ('MetaCons"This1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))) :+: (C1 ('MetaCons"That1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g a))) :+: C1 ('MetaCons"These1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g a)))))type Rep (These a b) = D1 ('MetaDataDefined in these-1.2.1 · Data.These"These"
"Data.These"
"these-1.2.1-CO2ghMwyXOO5u3eAGM6JNx"
'False) (C1 ('MetaCons"This"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons"That"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :+: C1 ('MetaCons"These"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b))))type Rep (Backwards f a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Applicative.Backwards"Backwards"
"Control.Applicative.Backwards"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"Backwards"
'PrefixI 'True) (S1 ('MetaSel ('Just"forwards"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep (Lift f a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Applicative.Lift"Lift"
"Control.Applicative.Lift"
"transformers-0.6.1.2-8201"
'False) (C1 ('MetaCons"Pure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons"Other"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep (AccumT w m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Accum"AccumT"
"Control.Monad.Trans.Accum"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"AccumT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (w -> m (a, w)))))type Rep (ContT r m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Cont"ContT"
"Control.Monad.Trans.Cont"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"ContT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runContT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ((a -> m r) -> m r))))type Rep (ExceptT e m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Except"ExceptT"
"Control.Monad.Trans.Except"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"ExceptT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m (Either e a)))))type Rep (IdentityT f a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Identity"IdentityT"
"Control.Monad.Trans.Identity"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"IdentityT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runIdentityT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep (MaybeT m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Maybe"MaybeT"
"Control.Monad.Trans.Maybe"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"MaybeT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runMaybeT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m (Maybe a)))))type Rep (RWST r w s m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.CPS"RWST"
"Control.Monad.Trans.RWS.CPS"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"RWST"
'PrefixI 'True) (S1 ('MetaSel ('Just"unRWST"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (r -> s -> w -> m (a, s, w)))))type Rep (RWST r w s m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Lazy"RWST"
"Control.Monad.Trans.RWS.Lazy"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"RWST"
'PrefixI 'True) (S1 ('MetaSel ('Just"runRWST"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (r -> s -> m (a, s, w)))))type Rep (RWST r w s m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.RWS.Strict"RWST"
"Control.Monad.Trans.RWS.Strict"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"RWST"
'PrefixI 'True) (S1 ('MetaSel ('Just"runRWST"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (r -> s -> m (a, s, w)))))type Rep (ReaderT r m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Reader"ReaderT"
"Control.Monad.Trans.Reader"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"ReaderT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runReaderT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (r -> m a))))type Rep (SelectT r m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Select"SelectT"
"Control.Monad.Trans.Select"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"SelectT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ((a -> m r) -> m a))))type Rep (StateT s m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.State.Lazy"StateT"
"Control.Monad.Trans.State.Lazy"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"StateT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runStateT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (s -> m (a, s)))))type Rep (StateT s m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.State.Strict"StateT"
"Control.Monad.Trans.State.Strict"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"StateT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runStateT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (s -> m (a, s)))))type Rep (WriterT w m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.CPS"WriterT"
"Control.Monad.Trans.Writer.CPS"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"WriterT"
'PrefixI 'True) (S1 ('MetaSel ('Just"unWriterT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (w -> m (a, w)))))type Rep (WriterT w m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy"WriterT"
"Control.Monad.Trans.Writer.Lazy"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"WriterT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runWriterT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m (a, w)))))type Rep (WriterT w m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Strict"WriterT"
"Control.Monad.Trans.Writer.Strict"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"WriterT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runWriterT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m (a, w)))))type Rep (Constant a b) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Data.Functor.Constant"Constant"
"Data.Functor.Constant"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"Constant"
'PrefixI 'True) (S1 ('MetaSel ('Just"getConstant"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (Reverse f a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Data.Functor.Reverse"Reverse"
"Data.Functor.Reverse"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"Reverse"
'PrefixI 'True) (S1 ('MetaSel ('Just"getReverse"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))type Rep ((:*:) f g p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":*:"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons":*:"
('InfixI 'RightAssociative6
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p)) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g p))))type Rep ((:+:) f g p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":+:"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"L1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f p))) :+: C1 ('MetaCons"R1"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (g p))))type Rep ((:.:) f g p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics":.:"
"GHC.Internal.Generics"
"ghc-internal"
'True) (C1 ('MetaCons"Comp1"
'PrefixI 'True) (S1 ('MetaSel ('Just"unComp1"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f (g p)))))type Rep () = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Unit"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"()"
'PrefixI 'False) U1)type Rep (a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Solo"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"MkSolo"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep (a, b) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple2"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,)"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))type Rep (a, b, c) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple3"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,)"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))))type Rep (a, b, c, d) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple4"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d))))type Rep (a, b, c, d, e) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple5"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)))))type Rep (a, b, c, d, e, f) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple6"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))))type Rep (a, b, c, d, e, f, g) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple7"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,)"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)))))type Rep (a, b, c, d, e, f, g, h) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple8"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h)))))type Rep (a, b, c, d, e, f, g, h, i) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple9"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i))))))type Rep (a, b, c, d, e, f, g, h, i, j) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple10"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j))))))type Rep (a, b, c, d, e, f, g, h, i, j, k) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple11"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k))))))type Rep (a, b, c, d, e, f, g, h, i, j, k, l) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple12"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l))))))type Rep (a, b, c, d, e, f, g, h, i, j, k, l, m) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple13"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m))))))type Rep (a, b, c, d, e, f, g, h, i, j, k, l, m, n) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple14"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 n))))))type Rep (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Tuple15"
"GHC.Internal.Tuple"
"ghc-internal"
'False) (C1 ('MetaCons"(,,,,,,,,,,,,,,)"
'PrefixI 'False) (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 c))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 d) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 e)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 f) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 g)))) :*: (((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 h) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 i)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 j) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 k))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 l) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 m)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 n) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 o))))))type Rep [a] = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"List"
"GHC.Internal.Types"
"ghc-internal"
'False) (C1 ('MetaCons"[]"
'PrefixI 'False) U1 :+: C1 ('MetaCons":"
('InfixI 'RightAssociative5
) 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))
Type synonym for encoding meta-information for record selectors
Instances18RecordToPairs, ConsToJSON', ConsFromJSON', GRead1Con, GShow1Con, FieldNames, …
(Selector s, GToJSON' enc One Par1, KeyValuePair enc pairs) => RecordToPairs enc pairs One (S1 s Par1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(Selector s, GToJSON' enc One (Rec1 f), KeyValuePair enc pairs, ToJSON1 f) => RecordToPairs enc pairs One (S1 s (Rec1 f))Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(Selector s, GToJSON' enc arity (K1 i t), KeyValuePair enc pairs, ToJSON t) => RecordToPairs enc pairs arity (S1 s (K1 i t))Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(RecordToPairs enc pairs arity (S1 s f), FromPairs enc pairs, GToJSON' enc arity f) => ConsToJSON' enc arity (S1 s f) TrueDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGFromJSON arity f => ConsFromJSON' arity (S1 s f) FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(GFromJSON arity a, RecordFromJSON arity (S1 s a)) => ConsFromJSON' arity (S1 s a) TrueDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(Selector s, GRead1Con v f) => GRead1Con v (S1 s f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Selector s, GShow1Con v f) => GShow1Con v (S1 s f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalSelector s => FieldNames (S1 s f)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONGFromJSON arity a => ProductFromJSON arity (S1 s a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(Selector s, FromJSON a) => RecordFromJSON' arity (S1 s (Rec0 a))Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(Selector s, FromJSON a, Generic a, K1 i a ~ Rep a) => RecordFromJSON' arity (S1 s (K1 i a))Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(Selector s, GFromJSON One Par1) => RecordFromJSON' One (S1 s Par1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(Selector s, GFromJSON One (Rec1 f), FromJSON1 f) => RecordFromJSON' One (S1 s (Rec1 f))Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONIsNullaryCon f => IsNullaryCon (S1 s f)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalProductSize (S1 s a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.Generic(Selector s, GReadCon (f p)) => GReadCon (S1 s f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal(Selector s, GShowCon (f p)) => GShowCon (S1 s f p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internal
Class for datatypes that represent records
Methods
selName :: t s f a -> [Char]The name of the selector
selSourceUnpackedness :: t s f a -> SourceUnpackednessThe selector's unpackedness annotation (if any)
selSourceStrictness :: t s f a -> SourceStrictnessThe selector's strictness annotation (if any)
selDecidedStrictness :: t s f a -> DecidedStrictnessThe strictness that the compiler inferred for the selector
Unit: used for constructors without arguments
Instances76TaggedObject', SumToJSON', GDeciding, GToJSON', ConsFromJSON', FromTaggedObject', …
Monoid pairs => TaggedObject' enc pairs arity U1 FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSON(Constructor c, IsString enc) => SumToJSON' UntaggedValue enc arity (C1 c U1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGDeciding q U1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericGToJSON' Encoding arity U1Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGToJSON' Value arity U1Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONConsFromJSON' arity U1 FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromTaggedObject' arity U1 FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONGeneric1 U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGNFData arity U1Defined in deepseq-1.5.1.0 · Control.DeepSeqGBinaryGet U1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGBinaryPut U1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGEq1 v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGRead1Con v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1Con v U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRecursivelyShrink U1Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGCoArbitrary U1Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGFunction U1Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionGHashable arity U1Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances · orphanFoldableWithIndex Void U1Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void U1Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void U1Defined in indexed-traversable-0.1.5 · WithIndexGDeciding1 q U1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericConstructor c => FromUntaggedValue arity (C1 c U1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONConstructor c => SumFromString (C1 c U1)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONMonad U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsApplicative U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable U1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable U1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableAlternative U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadPlus U1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadZip U1Defined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipEq1 U1Defined in base-4.22.0.0 · Data.Functor.ClassesOrd1 U1Defined in base-4.22.0.0 · Data.Functor.ClassesRead1 U1Defined in base-4.22.0.0 · Data.Functor.ClassesShow1 U1Defined in base-4.22.0.0 · Data.Functor.ClassesContravariant U1Defined in base-4.22.0.0 · Data.Functor.ContravariantIsNullaryCon U1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGUniform U1Defined in random-1.3.1 · System.Random.InternalGUniformRange U1Defined in random-1.3.1 · System.Random.InternalGFinite U1Defined in random-1.3.1 · System.Random.GFiniteDistributive U1Defined in distributive-0.6.3 · Data.DistributiveGDistributive U1Defined in distributive-0.6.3 · Data.Distributive.GenericDecidable U1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleDivisible U1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleGG U1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericAlt U1Defined in semigroupoids-6.0.2 · Data.Functor.AltApply U1Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind U1Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend U1Defined in semigroupoids-6.0.2 · Data.Functor.ExtendConclude U1Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.ConcludeDecide U1Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DecideDivise U1Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DivisePlus U1Defined in semigroupoids-6.0.2 · Data.Functor.PlusFilterable U1Defined in witherable-0.5 · WitherableWitherable U1Defined in witherable-0.5 · WitherableGSubterms U1 aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGSubtermsIncl U1 aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryIsRecord U1 FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericAllNullary U1 TrueDefined in aeson-2.2.5.1 · Data.Aeson.Types.GenericEq (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsData p => Data (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonoid (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGEq (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGReadCon (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShowCon (U1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internaltype Rep (U1 p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"U1"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"U1"
'PrefixI 'False) U1)type Rep1 U1 = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"U1"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"U1"
'PrefixI 'False) U1)type Swizzle U1 = U1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic
Constants of unlifted kinds
Instances67Generic1, GNFData, Foldable, Traversable, Functor, Eq, …
Generic1 (URec Char)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Double)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Float)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Int)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec Word)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric1 (URec (Ptr ()))Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGNFData arity (URec a)Defined in deepseq-1.5.1.0 · Control.DeepSeqFoldable UAddrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableFoldable UWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable UAddrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableTraversable UWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableFunctor (URec Char)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Double)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Float)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Int)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec Word)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFunctor (URec (Ptr ()))Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (UAddr p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (URec Char p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"uChar#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UChar))type Rep (URec Double p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UDouble"
'PrefixI 'True) (S1 ('MetaSel ('Just"uDouble#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UDouble))type Rep (URec Float p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UFloat"
'PrefixI 'True) (S1 ('MetaSel ('Just"uFloat#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UFloat))type Rep (URec Int p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UInt"
'PrefixI 'True) (S1 ('MetaSel ('Just"uInt#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))type Rep (URec Word p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UWord"
'PrefixI 'True) (S1 ('MetaSel ('Just"uWord#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UWord))type Rep (URec (Ptr ()) p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UAddr"
'PrefixI 'True) (S1 ('MetaSel ('Just"uAddr#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UAddr))type Rep1 (URec Char) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"uChar#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UChar))type Rep1 (URec Double) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UDouble"
'PrefixI 'True) (S1 ('MetaSel ('Just"uDouble#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UDouble))type Rep1 (URec Float) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UFloat"
'PrefixI 'True) (S1 ('MetaSel ('Just"uFloat#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UFloat))type Rep1 (URec Int) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UInt"
'PrefixI 'True) (S1 ('MetaSel ('Just"uInt#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))type Rep1 (URec Word) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UWord"
'PrefixI 'True) (S1 ('MetaSel ('Just"uWord#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UWord))type Rep1 (URec (Ptr ())) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UAddr"
'PrefixI 'True) (S1 ('MetaSel ('Just"uAddr#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UAddr))data URec CharDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Char#
data URec DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Double#
data URec FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Float#
data URec IntDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Int#
data URec WordDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Word#
data URec (Ptr ())Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Addr#
Void: used for datatypes without constructors
Instances56GDeciding, GToJSON', Generic1, GNFData, GBinaryGet, GBinaryPut, …
GDeciding q V1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericGToJSON' Encoding arity V1Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGToJSON' Value arity V1Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 V1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGNFData arity V1Defined in deepseq-1.5.1.0 · Control.DeepSeqGBinaryGet V1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGBinaryPut V1Defined in binary-0.8.9.3 · Data.Binary.Generic · orphanGEq1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGRead1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow1 v V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRecursivelyShrink V1Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGHashable arity V1Defined in hashable-1.5.1.0 · Data.Hashable.Generic.Instances · orphanFoldableWithIndex Void V1Defined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Void V1Defined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Void V1Defined in indexed-traversable-0.1.5 · WithIndexGDeciding1 q V1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericGFromJSON arity V1Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONGFromJSON' arity V1Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONNo constructors.
Functor V1Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable V1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable V1Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableFoldable1 V1Defined in base-4.22.0.0 · Data.Foldable1Eq1 V1Defined in base-4.22.0.0 · Data.Functor.ClassesOrd1 V1Defined in base-4.22.0.0 · Data.Functor.ClassesRead1 V1Defined in base-4.22.0.0 · Data.Functor.ClassesShow1 V1Defined in base-4.22.0.0 · Data.Functor.ClassesContravariant V1Defined in base-4.22.0.0 · Data.Functor.ContravariantIsNullaryDataType V1Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGFinite V1Defined in random-1.3.1 · System.Random.GFiniteGG V1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.GenericAlt V1Defined in semigroupoids-6.0.2 · Data.Functor.AltApply V1Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassA V1 is not Applicative, but it is an instance of Apply
Bind V1Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend V1Defined in semigroupoids-6.0.2 · Data.Functor.ExtendDecide V1Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DecideHas no Decidable or
Concludeinstance.Divise V1Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DiviseHas no Divisible instance.
Traversable1 V1Defined in semigroupoids-6.0.2 · Data.Semigroup.Traversable.ClassFilterable V1Defined in witherable-0.5 · WitherableWitherable V1Defined in witherable-0.5 · WitherableGSubterms V1 aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryGSubtermsIncl V1 aDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryEq (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsData p => Data (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGEq (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGOrd (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGRead (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalGShow (V1 p)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.Internaltype Rep (V1 p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"V1"
"GHC.Internal.Generics"
"ghc-internal"
'False) V1type Rep1 V1 = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"V1"
"GHC.Internal.Generics"
"ghc-internal"
'False) V1type Swizzle V1 = V1Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Generic
File and directory names are values of type String, whose precise meaning is operating system dependent. Files can be opened, yielding a handle which can then be used to operate on the contents of that file.
Describes the behaviour of a thread when an asynchronous exception is received.
Constructors
Unmaskedasynchronous exceptions are unmasked (the normal state)
MaskedInterruptiblethe state during mask: asynchronous exceptions are masked, but blocking operations may still be interrupted
MaskedUninterruptiblethe state during uninterruptibleMask: asynchronous exceptions are masked, and blocking operations may not be interrupted
Instances3Eq, Show, NFData
Eq MaskingStateDefined in ghc-internal-9.1401.0 · GHC.Internal.IOShow MaskingStateDefined in ghc-internal-9.1401.0 · GHC.Internal.IONFData MaskingStateDefined in deepseq-1.5.1.0 · Control.DeepSeq
This thread has exceeded its allocation limit. See setAllocationCounter and enableAllocationLimit.
Instances2Show, Exception
Show AllocationLimitExceededDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException AllocationLimitExceededDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
Exceptions generated by array operations
Constructors
IndexOutOfBounds StringAn attempt was made to index an array outside its declared bounds.
UndefinedElement StringAn attempt was made to evaluate an element of an array that had not been initialized.
Instances4Eq, Ord, Show, Exception
Eq ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
Constructors
Instances2Show, Exception
Show AssertionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException AssertionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
Asynchronous exceptions.
Constructors
StackOverflowThe current thread's stack exceeded its limit. Since an exception has been raised, the thread's stack will certainly be below its limit again, but the programmer should take remedial action immediately.
HeapOverflowThe program's heap is reaching its limit, and the program should take action to reduce the amount of live data it has. Notes:
It is undefined which thread receives this exception. GHC currently throws this to the same thread that receives UserInterrupt, but this may change in the future.
The GHC RTS currently can only recover from heap overflow if it detects that an explicit memory limit (set via RTS flags). has been exceeded. Currently, failure to allocate memory from the operating system results in immediate termination of the program.
ThreadKilledThis exception is raised by another thread calling killThread, or by the system if it needs to terminate the thread for some reason.
UserInterruptThis exception is raised by default in the main thread of the program when the user requests to terminate the program via the usual mechanism(s) (e.g. Control-C in the console).
Instances4Eq, Ord, Show, Exception
Eq AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
The thread is blocked on an MVar, but there are no other references
to the MVar so it can't ever continue.
Instances2Show, Exception
Show BlockedIndefinitelyOnMVarDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException BlockedIndefinitelyOnMVarDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
The thread is waiting to retry an STM transaction, but there are no
other references to any TVars involved, so it can't ever continue.
Instances2Show, Exception
Show BlockedIndefinitelyOnSTMDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException BlockedIndefinitelyOnSTMDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
Compaction found an object that cannot be compacted. Functions
cannot be compacted, nor can mutable objects or pinned objects.
See GHC.Compact.compact.
Constructors
Instances2Show, Exception
Show CompactionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException CompactionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
There are no runnable threads, so the program is deadlocked.
The Deadlock exception is raised in the main thread only.
Defines the exit codes that a program can return.
Constructors
ExitSuccessindicates successful termination;
ExitFailure Intindicates program failure with an exit code. The exact interpretation of the code is operating-system dependent. In particular, some values may be prohibited (e.g. 0 on a POSIX-compliant system).
Instances11Eq, Ord, Read, Show, Generic, Exception, …
Eq ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionRead ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionGeneric ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionNFData ExitCodeDefined in deepseq-1.5.1.0 · Control.DeepSeqArbitrary ExitCodeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary ExitCodeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction ExitCodeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.Functiontype Rep ExitCode = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception"ExitCode"
"GHC.Internal.IO.Exception"
"ghc-internal"
'False) (C1 ('MetaCons"ExitSuccess"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExitFailure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))
Exceptions that occur in the IO monad.
An IOException records a more specific error type, a descriptive
string and maybe the handle that was used when the error was
flagged.
Instances4Eq, Show, Exception, MonadError
Eq IOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow IOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException IOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionMonadError IOException IODefined in mtl-2.3.1 · Control.Monad.Error.Class
Superclass for asynchronous exceptions.
Constructors
forall e. Exception e => SomeAsyncException e
Instances2Show, Exception
Show SomeAsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionException SomeAsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Exception
Haskell defines operations to read and write characters from and to files,
represented by values of type Handle. Each value of this type is a
handle: a record used by the Haskell run-time system to manage I/O
with file system objects. A handle has at least the following properties:
whether it manages input or output or both;
whether it is open, closed or semi-closed;
whether the object is seekable;
whether buffering is disabled, or enabled on a line or block basis;
a buffer (whose length may be zero).
Most handles will also have a current I/O position indicating where the next input or output operation will occur. A handle is readable if it manages only input or both input and output; likewise, it is writable if it manages only output or both input and output. A handle is open when first allocated. Once it is closed it can no longer be used for either input or output, though an implementation cannot re-use its storage while references remain to it. Handles are in the Show and Eq classes. The string produced by showing a handle is system dependent; it should include enough information to identify the handle for debugging. A handle is equal according to == only to itself; no attempt is made to compare the internal state of different handles for equality.
See GHC.Internal.System.IO.openFile
Instances9Enum, Eq, Ord, Read, Show, Ix, …
Enum IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeEq IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeOrd IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeRead IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeShow IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeIx IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeArbitrary IOModeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary IOModeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction IOModeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function
16-bit signed integer type
Instances40Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntData Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIx Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntStorable Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Int16Defined in base-4.22.0.0 · Text.PrintfNFData Int16Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary Int16Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Int16Defined in random-1.3.1 · System.RandomFinite Int16Defined in random-1.3.1 · System.Random.GFiniteUniform Int16Defined in random-1.3.1 · System.Random.InternalUniformRange Int16Defined in random-1.3.1 · System.Random.InternalArbitrary Int16Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Int16Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Int16Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Int16Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Int16Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Int16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON Int16Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Int16Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Int16Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Int16Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Int16Defined in formatting-7.2.0 · Formatting.BuildableLift Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Int16Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Int16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Int16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Int16 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Int16 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Int16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Int16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
32-bit signed integer type
Instances42Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntData Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIx Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntStorable Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Int32Defined in base-4.22.0.0 · Text.PrintfNFData Int32Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary Int32Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Int32Defined in random-1.3.1 · System.RandomFinite Int32Defined in random-1.3.1 · System.Random.GFiniteUniform Int32Defined in random-1.3.1 · System.Random.InternalUniformRange Int32Defined in random-1.3.1 · System.Random.InternalArbitrary Int32Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Int32Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Int32Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Int32Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Int32Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Int32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON Int32Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Int32Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Int32Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Int32Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Int32Defined in formatting-7.2.0 · Formatting.BuildableLift Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Int32Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Int32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Int32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseReportSchemaErrors m => FromJSON m Int32Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMonad m => ToJSON m Int32Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMArray IOUArray Int32 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Int32 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Int32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Int32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
64-bit signed integer type
Instances40Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntData Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIx Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntStorable Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Int64Defined in base-4.22.0.0 · Text.PrintfNFData Int64Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary Int64Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Int64Defined in random-1.3.1 · System.RandomFinite Int64Defined in random-1.3.1 · System.Random.GFiniteUniform Int64Defined in random-1.3.1 · System.Random.InternalUniformRange Int64Defined in random-1.3.1 · System.Random.InternalArbitrary Int64Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Int64Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Int64Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Int64Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Int64Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Int64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON Int64Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Int64Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Int64Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Int64Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Int64Defined in formatting-7.2.0 · Formatting.BuildableLift Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Int64Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Int64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Int64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Int64 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Int64 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Int64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Int64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
8-bit signed integer type
Instances40Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEnum Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntEq Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntData Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIx Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntBits Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntFiniteBits Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntStorable Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Int8Defined in base-4.22.0.0 · Text.PrintfNFData Int8Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary Int8Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Int8Defined in random-1.3.1 · System.RandomFinite Int8Defined in random-1.3.1 · System.Random.GFiniteUniform Int8Defined in random-1.3.1 · System.Random.InternalUniformRange Int8Defined in random-1.3.1 · System.Random.InternalArbitrary Int8Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Int8Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Int8Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Int8Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Int8Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Int8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON Int8Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Int8Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Int8Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Int8Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Int8Defined in formatting-7.2.0 · Formatting.BuildableLift Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Int8Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Int8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Int8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Int8 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Int8 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Int8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Int8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
An MVar (pronounced "em-var") is a synchronising variable, used for communication between concurrent threads. It can be thought of as a box, which may be empty or full.
Instances3NFData1, Eq, NFData
Basic numeric class.
The Haskell Report defines no laws for Num. However, (+) and (*) are
customarily expected to define a ring and have the following properties:
- Associativity of
(+) (x + y) + z=
x + (y + z)- Commutativity of
(+) x + y=
y + xfromInteger 0is the additive identityx + fromInteger 0=
x- negate gives the additive inverse
x + negate x=
fromInteger 0- Associativity of
(*) (x * y) * z=
x * (y * z)fromInteger 1is the multiplicative identityx * fromInteger 1=
xand
fromInteger 1 * x=
x- Distributivity of
(*)with respect to(+) a * (b + c)=
(a * b) + (a * c)and
(b + c) * a=
(b * a) + (c * a)- Coherence with
toInteger if the type also implements
GHC.Real.Integral, then
is a left inverse for
, i.e.
fromInteger (toInteger i) == i
Note that it isn't customarily expected that a type instance of both Num
and Ord implement an ordered ring. Indeed, in base only Integer and
Data.Ratio.Rational do.
Methods
(+) :: a -> a -> ainfixl 6(-) :: a -> a -> ainfixl 6(*) :: a -> a -> ainfixl 7negate :: a -> aUnary negation.
abs :: a -> aAbsolute value.
signum :: a -> afromInteger :: Integer -> aConversion from an Integer. An integer literal represents the application of the function fromInteger to the appropriate value of type Integer, so such literals have type
(Num a) => a.
Instances116Num, …
Num OrdADefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyNum OrdBDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyNum OrdCDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyNum Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesNum TimeSpecDefined in clock-0.8.4 · System.ClockNum SecondsDefined in clock-0.8.4 · System.Clock.SecondsNum IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.NumNum NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.NumNum EventTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollNum EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.PollNum UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.UniqueNum CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesNum IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrNum WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrNum HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesNum Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntNum Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntNum Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntNum Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntNum ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsNum WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsNum ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfNum WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfNum CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesNum DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero. Neither addition nor multiplication are associative or distributive:
Example3 expressions (0.1 + 0.1) + 0.4 == 0.1 + (0.1 + 0.4)False(0.1 + 0.2) * 0.3 == 0.1 * 0.3 + 0.2 * 0.3False(0.1 * 0.1) * 0.3 == 0.1 * (0.1 * 0.3)False
Num FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero. Neither addition nor multiplication are associative or distributive:
Example3 expressions (0.1 + 0.1 :: Float) + 0.5 == 0.1 + (0.1 + 0.5)False(0.1 + 0.2 :: Float) * 0.9 == 0.1 * 0.9 + 0.2 * 0.9False(0.1 * 0.1 :: Float) * 0.9 == 0.1 * (0.1 * 0.9)False
Num IntDefined in ghc-internal-9.1401.0 · GHC.Internal.NumNum WordDefined in ghc-internal-9.1401.0 · GHC.Internal.NumNum Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordNum Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordNum Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordNum Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordNum HalfDefined in half-0.3.3 · Numeric.Half.InternalNum CardinalityDefined in random-1.3.1 · System.Random.GFiniteNum ScientificDefined in scientific-0.3.9.0 · Data.ScientificWARNING: + and - compute the Integer magnitude:
10^ewhereeis the difference between thebase10Exponentsof the arguments. If these methods are applied to arguments which have huge exponents this could fill up all space and crash your program! So don't apply these methods to scientific numbers coming from untrusted sources. The other methods can be used safely.Num I8Defined in text-2.1.3 · Data.Text.ForeignNum SizeDefined in text-2.1.3 · Data.Text.Internal.Fusion.SizeNum BDefined in text-short-0.1.6.1 · Data.Text.Short.InternalNum DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeNum NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeNum CAttributesDefined in unix-2.8.8.0 · System.Posix.Files.CommonNum StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonNum StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonNum BaudRateDefined in unix-2.8.8.0 · System.Posix.Terminal.CommonNum SizeDefined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle.SizeRealFloat a => Num (Complex a)Defined in base-4.22.0.0 · Data.ComplexNum a => Num (Blind a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersNum a => Num (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersNum a => Num (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersNum a => Num (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersNum a => Num (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersNum a => Num (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersNum a => Num (Max a)Defined in base-4.22.0.0 · Data.SemigroupNum a => Num (Min a)Defined in base-4.22.0.0 · Data.SemigroupNum a => Num (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesNum a => Num (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesNum a => Num (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityNum a => Num (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdNum a => Num (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Num (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalIntegral a => Num (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealHasResolution a => Num (Fixed a)Defined in base-4.22.0.0 · Data.FixedMultiplication is not associative or distributive:
Example1 expression (0.2 * 0.6 :: Deci) * 0.9 == 0.2 * (0.6 * 0.9)False
Example1 expression (0.1 + 0.1 :: Deci) * 0.5 == 0.1 * 0.5 + 0.1 * 0.5False
Num a => Num (Op a b)Defined in base-4.22.0.0 · Data.Functor.ContravariantNum (f a) => Num (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalNum a => Num (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstNum a => Num (Tagged s a)Defined in tagged-0.8.11 · Data.Tagged(Biapplicative bi, Num a, Num b) => Num (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biap(Applicative f, Num a) => Num (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidNote that even if the underlying Num and Applicative instances are lawful, for most Applicatives, this instance will not be lawful. If you use this instance with the list Applicative, the following customary laws will not hold:
Commutativity:
Example2 expressions Ap [10,20] + Ap [1,2]Ap {getAp = [11,12,21,22]}Ap [1,2] + Ap [10,20]Ap {getAp = [11,21,12,22]}
Additive inverse:
Example2 expressions Ap [] + negate (Ap [])Ap {getAp = []}fromInteger 0 :: Ap [] IntAp {getAp = [0]}
Distributivity:
Example2 expressions Ap [1,2] * (3 + 4)Ap {getAp = [7,14]}(Ap [1,2] * 3) + (Ap [1,2] * 4)Ap {getAp = [7,11,10,14]}
Num (f (g a)) => Num (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
A value of type Ptr a represents a pointer to an object, or an
array of objects, which may be marshalled to or from Haskell values
of type a.
The type a will often be an instance of class
Storable which provides the marshalling operations.
However this is not essential, and you can provide your own operations
to access the pointer. For example you might write small foreign
functions to get or set the fields of a C struct.
Instances27NFData1, IArray, Generic1, Data, Foldable, Traversable, …
NFData1 PtrDefined in deepseq-1.5.1.0 · Control.DeepSeqIArray UArray (Ptr a)Defined in array-0.5.8.0 · Data.Array.BaseMArray IOUArray (Ptr a) IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec (Ptr ()))Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrData a => Data (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrShow (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrFoldable UAddrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable UAddrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableStorable (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorableNFData (Ptr a)Defined in deepseq-1.5.1.0 · Control.DeepSeqHashable (Ptr a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim (Ptr a)Defined in primitive-0.9.1.0 · Data.Primitive.TypesBuildable (Ptr a)Defined in formatting-7.2.0 · Formatting.BuildableStorable a => HasGetter (Ptr a) aDefined in StateVar-1.2.2 · Data.StateVarStorable a => HasSetter (Ptr a) aDefined in StateVar-1.2.2 · Data.StateVarStorable a => HasUpdate (Ptr a) a aDefined in StateVar-1.2.2 · Data.StateVarMArray (STUArray s) (Ptr a) (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec (Ptr ()))Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (UAddr p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (URec (Ptr ()) p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UAddr"
'PrefixI 'True) (S1 ('MetaSel ('Just"uAddr#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UAddr))type Rep1 (URec (Ptr ())) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UAddr"
'PrefixI 'True) (S1 ('MetaSel ('Just"uAddr#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UAddr))data URec (Ptr ())Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Addr#
Parsing of Strings, producing values.
Derived instances of Read make the following assumptions, which
derived instances of Text.Show.Show obey:
If the constructor is defined to be an infix operator, then the derived Read instance will parse only infix applications of the constructor (not the prefix form).
Associativity is not used to reduce the occurrence of parentheses, although precedence may be.
If the constructor is defined using record syntax, the derived Read will parse only the record-syntax form, and furthermore, the fields must be given in the same order as the original declaration.
The derived Read instance allows arbitrary Haskell whitespace between tokens of the input string. Extra parentheses are also allowed.
For example, given the declarations
infixr 5 :^:
data Tree a = Leaf a | Tree a :^: Tree athe derived instance of Read in Haskell 2010 is equivalent to
instance (Read a) => Read (Tree a) where
readsPrec d r = readParen (d > app_prec)
(\r -> [(Leaf m,t) |
("Leaf",s) <- lex r,
(m,t) <- readsPrec (app_prec+1) s]) r
++ readParen (d > up_prec)
(\r -> [(u:^:v,w) |
(u,s) <- readsPrec (up_prec+1) r,
(":^:",t) <- lex s,
(v,w) <- readsPrec (up_prec+1) t]) r
where app_prec = 10
up_prec = 5Note that right-associativity of :^: is unused.
The derived instance in GHC is equivalent to
instance (Read a) => Read (Tree a) where
readPrec = parens $ (prec app_prec $ do
Ident "Leaf" <- lexP
m <- step readPrec
return (Leaf m))
+++ (prec up_prec $ do
u <- step readPrec
Symbol ":^:" <- lexP
v <- step readPrec
return (u :^: v))
where app_prec = 10
up_prec = 5
readListPrec = readListPrecDefaultWhy do both readsPrec and readPrec exist, and why does GHC opt to implement readPrec in derived Read instances instead of readsPrec? The reason is that readsPrec is based on the ReadS type, and although ReadS is mentioned in the Haskell 2010 Report, it is not a very efficient parser data structure.
readPrec, on the other hand, is based on a much more efficient ReadPrec
datatype (a.k.a "new-style parsers"), but its definition relies on the use
of the RankNTypes language extension. Therefore, readPrec (and its
cousin, readListPrec) are marked as GHC-only. Nevertheless, it is
recommended to use readPrec instead of readsPrec whenever possible
for the efficiency improvements it brings.
As mentioned above, derived Read instances in GHC will implement readPrec instead of readsPrec. The default implementations of readsPrec (and its cousin, readList) will simply use readPrec under the hood. If you are writing a Read instance by hand, it is recommended to write it like so:
instance Read T where
readPrec = ...
readListPrec = readListPrecDefault
Instances283Read, …
Read ASCIIStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead PrintableStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead UnicodeStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead QCGenDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.RandomRead ArgsDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.TestRead KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeyRead DotNetTimeDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalRead ValueDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalRead GCDetailsDefined in base-4.22.0.0 · GHC.StatsRead RTSStatsDefined in base-4.22.0.0 · GHC.StatsRead OptionsDefined in bifunctors-5.6.3 · Data.Bifunctor.THRead ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeRead ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalRead ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalRead Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesRead JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesRead JSValueDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesRead TermDefined in cborg-0.2.10.0 · Codec.CBOR.TermRead ClockDefined in clock-0.8.4 · System.ClockRead TimeSpecDefined in clock-0.8.4 · System.ClockRead SecondsDefined in clock-0.8.4 · System.Clock.SecondsRead IntSetDefined in containers-0.8 · Data.IntSet.InternalRead FileTypeDefined in directory-1.3.10.0 · System.Directory.Internal.CommonRead PermissionsDefined in directory-1.3.10.0 · System.Directory.Internal.CommonRead XdgDirectoryDefined in directory-1.3.10.0 · System.Directory.Internal.CommonRead XdgDirectoryListDefined in directory-1.3.10.0 · System.Directory.Internal.CommonRead VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderRead AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead VersionDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.VersionRead CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRead IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrRead WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrRead AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead SeekModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.DeviceRead ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionRead BufferModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesRead NewlineDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesRead NewlineModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesRead IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeRead Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntRead GCDetailsDefined in ghc-internal-9.1401.0 · GHC.Internal.StatsRead RTSStatsDefined in ghc-internal-9.1401.0 · GHC.Internal.StatsRead CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesRead LexemeDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead SomeCharDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsRead SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsRead SomeNatDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsRead BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead HalfDefined in half-0.3.3 · Numeric.Half.InternalRead CommunicationHandleDefined in process-1.6.26.1 · System.Process.CommunicationHandle.InternalRead ScientificDefined in scientific-0.3.9.0 · Data.ScientificSupports the skipping of parentheses and whitespaces. Example:
> read " ( (( -1.0e+3 ) ))" :: Scientific -1000.0(Note: This
Readinstance makes internal use of scientificP to parse the floating-point number.)Read SMGenDefined in splitmix-0.1.3.2 · System.Random.SplitMixExample1 expression readMaybe "SMGen 1 1" :: Maybe SMGenJust (SMGen 1 1)
Example1 expression readMaybe "SMGen 1 2" :: Maybe SMGenNothing
Example1 expression readMaybe (show (mkSMGen 42)) :: Maybe SMGenJust (SMGen 9297814886316923340 13679457532755275413)
Read SMGenDefined in splitmix-0.1.3.2 · System.Random.SplitMix32Example1 expression readMaybe "SMGen 1 1" :: Maybe SMGenJust (SMGen 1 1)
Example1 expression readMaybe "SMGen 1 2" :: Maybe SMGenNothing
Example1 expression readMaybe (show (mkSMGen 42)) :: Maybe SMGenJust (SMGen 142593372 1604540297)
Read I8Defined in text-2.1.3 · Data.Text.ForeignRead TextDefined in text-2.1.3 · Data.Text · orphanRead TextDefined in text-2.1.3 · Data.Text.Lazy · orphanRead FPFormatDefined in text-2.1.3 · Data.Text.Lazy.Builder.RealFloatRead ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalRead DatatypeVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeRead CalendarDiffDaysDefined in time-1.15 · Data.Time.Format.ISO8601 · orphanRead DayDefined in time-1.15 · Data.Time.Format.Parse · orphanRead MonthDefined in time-1.15 · Data.Time.Calendar.MonthRead as
yyyy-mm.Read QuarterDefined in time-1.15 · Data.Time.Calendar.QuarterRead as
yyyy-Qn.Read QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.QuarterRead DayOfWeekDefined in time-1.15 · Data.Time.Calendar.WeekRead DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeRead NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeRead UTCTimeDefined in time-1.15 · Data.Time.Format.Parse · orphanRead UniversalTimeDefined in time-1.15 · Data.Time.Format.Parse · orphanRead CalendarDiffTimeDefined in time-1.15 · Data.Time.Format.ISO8601 · orphanRead LocalTimeDefined in time-1.15 · Data.Time.Format.Parse · orphanRead TimeOfDayDefined in time-1.15 · Data.Time.Format.Parse · orphanRead TimeZoneDefined in time-1.15 · Data.Time.Format.Parse · orphanThis only works for
±HHMMformat, single-letter military time-zones, and these time-zones: "UTC", "UT", "GMT", "EST", "EDT", "CST", "CDT", "MST", "MDT", "PST", "PDT", per RFC 822 section 5.Read ZonedTimeDefined in time-1.15 · Data.Time.Format.Parse · orphanThis only works for a zonedTimeZone in
±HHMMformat, single-letter military time-zones, and these time-zones: "UTC", "UT", "GMT", "EST", "EDT", "CST", "CDT", "MST", "MDT", "PST", "PDT", per RFC 822 section 5.Read RTLDFlagsDefined in unix-2.8.8.0 · System.Posix.DynamicLinker.PrimRead CAttributesDefined in unix-2.8.8.0 · System.Posix.Files.CommonRead StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonRead StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonRead OpenFileFlagsDefined in unix-2.8.8.0 · System.Posix.IO.CommonRead OpenModeDefined in unix-2.8.8.0 · System.Posix.IO.CommonRead GroupEntryDefined in unix-2.8.8.0 · System.Posix.User.CommonRead UserEntryDefined in unix-2.8.8.0 · System.Posix.User.CommonRead UUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalRead UnpackedUUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalRead ()Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead1 f => Read (Fix f)Defined in data-fix-0.3.4 · Data.FixRead a => Read (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (Negative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (NonEmptyList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (NonNegative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (NonPositive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (NonZero a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (OrderedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (Positive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (SortedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersRead a => Read (Complex a)Defined in base-4.22.0.0 · Data.ComplexRead a => Read (First a)Defined in base-4.22.0.0 · Data.SemigroupRead a => Read (Last a)Defined in base-4.22.0.0 · Data.SemigroupRead a => Read (Max a)Defined in base-4.22.0.0 · Data.SemigroupRead a => Read (Min a)Defined in base-4.22.0.0 · Data.SemigroupRead a => Read (Seq a)Defined in containers-0.8 · Data.Sequence.InternalRead a => Read (ViewL a)Defined in containers-0.8 · Data.Sequence.InternalRead a => Read (ViewR a)Defined in containers-0.8 · Data.Sequence.InternalRead a => Read (PostOrder a)Defined in containers-0.8 · Data.TreeRead a => Read (Tree a)Defined in containers-0.8 · Data.TreeRead a => Read (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalRead a => Read (DList a)Defined in dlist-1.0 · Data.DList.InternalRead a => Read (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesRead a => Read (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesRead a => Read (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead a => Read (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsRead a => Read (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityThis instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed
Read a => Read (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidRead a => Read (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidRead a => Read (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdRead a => Read (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead a => Read (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListRead a => Read (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead a => Read (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayRead a => Read (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayRead a => Read (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeRead a => Read (Vector a)Defined in vector-0.13.2.0 · Data.VectorRead a => Read (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictRead a => Read (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead a => Read [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead e => Read (IntMap e)Defined in containers-0.8 · Data.IntMap.InternalRead m => Read (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupRead p => Read (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead v => Read (KeyMap v)Defined in aeson-2.2.5.1 · Data.Aeson.KeyMapRead vertex => Read (SCC vertex)Defined in containers-0.8 · Data.Graph(Functor f, Read1 f) => Read (Mu f)Defined in data-fix-0.3.4 · Data.Fix(Functor f, Read1 f) => Read (Nu f)Defined in data-fix-0.3.4 · Data.Fix(Read a, Ord a) => Read (Set a)Defined in containers-0.8 · Data.Set.Internal(Read a, Storable a) => Read (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Storable(Read a, Prim a) => Read (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Primitive(Read a, Unbox a) => Read (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphan(Integral a, Read a) => Read (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Hashable a, Read a) => Read (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalHasResolution a => Read (Fixed a)Defined in base-4.22.0.0 · Data.FixedRead (Proxy t)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyRead (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (f a) => Read (Zippy f a)Defined in semialign-1.4 · Data.Zip(Read1 f, Read a) => Read (Lift f a)Defined in transformers-0.6.1.2 · Control.Applicative.Lift(Read1 m, Read a) => Read (MaybeT m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Maybe(Ord k, Read k, Read e) => Read (Map k e)Defined in containers-0.8 · Data.Map.Internal(Ix a, Read a, Read b) => Read (Array a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Ix ix, Read ix, Read e, IArray UArray e) => Read (UArray ix e)Defined in array-0.5.8.0 · Data.Array.Base(Read a, Read b) => Read (Arg a b)Defined in base-4.22.0.0 · Data.Semigroup(Read a, Read b) => Read (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Read a, Read b) => Read (Either a b)Defined in strict-0.5.1 · Data.Strict.Either(Read a, Read b) => Read (These a b)Defined in strict-0.5.1 · Data.Strict.These(Read a, Read b) => Read (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(Read a, Read b) => Read (These a b)Defined in these-1.2.1 · Data.These(Read a, Read b) => Read (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Hashable k, Read k, Read e) => Read (HashMap k e)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(GRead (Rep1 f a), Generic1 f) => Read (FunctorClassesDefault f a)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalRead (bi a b) => Read (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapRead (f a) => Read (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidRead (f a) => Read (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalRead (f p) => Read (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (p (Fix p a) a) => Read (Fix p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixRead (p a a) => Read (Join p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinRead a => Read (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstRead a => Read (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.ConstantRead b => Read (Tagged s b)Defined in tagged-0.8.11 · Data.TaggedCoercible a b => Read (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Coercion(Read1 f, Read a) => Read (Backwards f a)Defined in transformers-0.6.1.2 · Control.Applicative.Backwards(Read1 f, Read a) => Read (IdentityT f a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Identity(Read1 f, Read a) => Read (Reverse f a)Defined in transformers-0.6.1.2 · Data.Functor.Reverse(Read (f a), Read (g a), Read a) => Read (These1 f g a)Defined in these-1.2.1 · Data.Functor.These(Read a, Read b, Read c) => Read (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read e, Read1 m, Read a) => Read (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Read w, Read1 m, Read a) => Read (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Read w, Read1 m, Read a) => Read (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Stricta ~ b => Read (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityRead c => Read (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Read (f a), Read (g a)) => Read (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product(Read (f a), Read (g a)) => Read (Sum f g a)Defined in base-4.22.0.0 · Data.Functor.Sum(Read (f p), Read (g p)) => Read ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Read (f p), Read (g p)) => Read ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Read a, Read b, Read c, Read d) => Read (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.Reada ~~ b => Read (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityRead (f (g a)) => Read (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeRead (f (g p)) => Read ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (f a) => Read (Clown f a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownRead (f p) => Read (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsRead (g b) => Read (Joker g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerRead (p a b) => Read (WrappedBifunctor p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedRead (p b a) => Read (Flip p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Flip(Read a, Read b, Read c, Read d, Read e) => Read (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read (f a b), Read (g a b)) => Read (Product f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Read (p a b), Read (q a b)) => Read (Sum p q a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Sum(Read a, Read b, Read c, Read d, Read e, Read f) => Read (a, b, c, d, e, f)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead (f (p a b)) => Read (Tannen f p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Read a, Read b, Read c, Read d, Read e, Read f, Read g) => Read (a, b, c, d, e, f, g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h) => Read (a, b, c, d, e, f, g, h)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadRead (p (f a) (g b)) => Read (Biff p f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i) => Read (a, b, c, d, e, f, g, h, i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j) => Read (a, b, c, d, e, f, g, h, i, j)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k) => Read (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l) => Read (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l, Read m) => Read (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l, Read m, Read n) => Read (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read(Read a, Read b, Read c, Read d, Read e, Read f, Read g, Read h, Read i, Read j, Read k, Read l, Read m, Read n, Read o) => Read (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-internal-9.1401.0 · GHC.Internal.Read
Fractional numbers, supporting real division.
The Haskell Report defines no laws for Fractional. However, (+) and
(*) are customarily expected to define a division ring and have the
following properties:
- recip gives the multiplicative inverse
x * recip x=
recip x * x=
fromInteger 1- Totality of toRational
is total
- Coherence with toRational
if the type also implements
, then
is a left inverse for
, i.e.
fromRational (toRational i) = i
Note that it isn't customarily expected that a type instance of
Fractional implement a field. However, all instances in base do.
Methods
(/) :: a -> a -> ainfixl 7Fractional division.
recip :: a -> aReciprocal fraction.
fromRational :: Rational -> aConversion from a Rational (that is
Ratio Integer). A floating literal stands for an application of fromRational to a value of type Rational, so such literals have type(Fractional a) => a.
Instances19Fractional, …
Fractional SecondsDefined in clock-0.8.4 · System.Clock.SecondsFractional CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFractional CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesFractional DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.
Example4 expressions 0 == (-0 :: Double)Truerecip 0 == recip (-0 :: Double)Falsemap (/ 0) [-1, 0, 1][-Infinity,NaN,Infinity]map (* 0) $ map (/ 0) [-1, 0, 1][NaN,NaN,NaN]
Fractional FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.
Example4 expressions 0 == (-0 :: Float)Truerecip 0 == recip (-0 :: Float)Falsemap (/ 0) [-1, 0, 1 :: Float][-Infinity,NaN,Infinity]map (* 0) $ map (/ 0) [-1, 0, 1 :: Float][NaN,NaN,NaN]
Fractional HalfDefined in half-0.3.3 · Numeric.Half.InternalFractional ScientificDefined in scientific-0.3.9.0 · Data.ScientificWARNING: recip and / will throw an error when their outputs are repeating decimals.
These methods also compute Integer magnitudes (
10^e). If these methods are applied to arguments which have huge exponents this could fill up all space and crash your program! So don't apply these methods to scientific numbers coming from untrusted sources.fromRational will throw an error when the input Rational is a repeating decimal. Consider using fromRationalRepetend for these rationals which will detect the repetition and indicate where it starts.
Fractional DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeFractional NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeRealFloat a => Fractional (Complex a)Defined in base-4.22.0.0 · Data.ComplexFractional a => Fractional (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesFractional a => Fractional (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityFractional a => Fractional (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdIntegral a => Fractional (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealHasResolution a => Fractional (Fixed a)Defined in base-4.22.0.0 · Data.FixedFractional a => Fractional (Op a b)Defined in base-4.22.0.0 · Data.Functor.ContravariantFractional a => Fractional (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstFractional a => Fractional (Tagged s a)Defined in tagged-0.8.11 · Data.TaggedFractional (f (g a)) => Fractional (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
Integral numbers, supporting integer division.
The Haskell Report defines no laws for Integral. However, Integral
instances are customarily expected to define a Euclidean domain and have the
following properties for the div/mod and quot/rem pairs, given
suitable Euclidean functions f and g:
x=y * quot x y + rem x ywithrem x y=fromInteger 0org (rem x y)<g yx=y * div x y + mod x ywithmod x y=fromInteger 0orf (mod x y)<f y
An example of a suitable Euclidean function, for Integer's instance, is abs.
In addition, toInteger should be total, and fromInteger should be a left
inverse for it, i.e. fromInteger (toInteger i) = i.
Methods
quot :: a -> a -> ainfixl 7Integer division truncated toward zero.
WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in
base.rem :: a -> a -> ainfixl 7Integer remainder, satisfying
(x `quot` y)*y + (x `rem` y) == xWARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in
base.div :: a -> a -> ainfixl 7Integer division truncated toward negative infinity.
WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in
base.mod :: a -> a -> ainfixl 7Integer modulus, satisfying
(x `div` y)*y + (x `mod` y) == xWARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in
base.quotRem :: a -> a -> (a, a)divMod :: a -> a -> (a, a)toInteger :: a -> IntegerConversion to Integer.
Instances78Integral, …
Integral Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesIntegral TimeSpecDefined in clock-0.8.4 · System.ClockIntegral IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.RealIntegral NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.RealIntegral CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesIntegral IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrIntegral WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrIntegral HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesIntegral Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntIntegral ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsIntegral WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsIntegral ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfIntegral WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfIntegral CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesIntegral IntDefined in ghc-internal-9.1401.0 · GHC.Internal.RealIntegral WordDefined in ghc-internal-9.1401.0 · GHC.Internal.RealIntegral Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral CardinalityDefined in random-1.3.1 · System.Random.GFiniteIntegral I8Defined in text-2.1.3 · Data.Text.ForeignIntegral StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonIntegral StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonIntegral a => Integral (Blind a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersIntegral a => Integral (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersIntegral a => Integral (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersIntegral a => Integral (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersIntegral a => Integral (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersIntegral a => Integral (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersIntegral a => Integral (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesIntegral a => Integral (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesIntegral a => Integral (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityIntegral a => Integral (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstIntegral a => Integral (Tagged s a)Defined in tagged-0.8.11 · Data.TaggedIntegral (f (g a)) => Integral (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
Rational numbers, with numerator and denominator of some Integral type.
Note that Ratio's instances inherit the deficiencies from the type
parameter's. For example, Ratio Natural's Num instance has similar
problems to Numeric.Natural.Natural's.
Constructors
a :% a
Instances22NFData1, Lift, Enum, Eq, Fractional, Data, …
NFData1 RatioDefined in deepseq-1.5.1.0 · Control.DeepSeqAvailable on
base >=4.9Integral a => Lift (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIntegral a => Enum (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealEq a => Eq (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealIntegral a => Fractional (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Real(Data a, Integral a) => Data (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataIntegral a => Num (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealIntegral a => Ord (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Real(Integral a, Read a) => Read (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadIntegral a => Real (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealIntegral a => RealFrac (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealShow a => Show (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Real(Storable a, Integral a) => Storable (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorableNFData a => NFData (Ratio a)Defined in deepseq-1.5.1.0 · Control.DeepSeq(Binary a, Integral a) => Binary (Ratio a)Defined in binary-0.8.9.3 · Data.Binary.ClassIntegral a => Arbitrary (Ratio a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(Integral a, CoArbitrary a) => CoArbitrary (Ratio a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Arbitrary(Integral a, Function a) => Function (Ratio a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable a => Hashable (Ratio a)Defined in hashable-1.5.1.0 · Data.Hashable.Class(FromJSON a, Integral a) => FromJSON (Ratio a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSON(ToJSON a, Integral a) => ToJSON (Ratio a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable a => Buildable (Ratio a)Defined in formatting-7.2.0 · Formatting.Buildable
Real numbers.
The Haskell report defines no laws for Real, however Real instances are customarily expected to adhere to the following law:
- Coherence with fromRational
if the type also implements
, then
is a left inverse for
, i.e.
fromRational (toRational i) = i
The law does not hold for Float, Double, CFloat, CDouble, etc., because these types contain non-finite values, which cannot be roundtripped through Rational.
Methods
toRational :: a -> RationalRational equivalent of its real argument with full precision.
Instances97Real, …
Real Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesReal TimeSpecDefined in clock-0.8.4 · System.ClockReal SecondsDefined in clock-0.8.4 · System.Clock.SecondsReal IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.RealReal NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.RealReal CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesReal IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrReal WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrReal HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesReal Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntReal ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsReal WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsReal ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfReal WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfReal CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesReal DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that toRational generates garbage for non-finite arguments:
Example2 expressions toRational (1/0)179769313 (and 300 more digits...) % 1toRational (0/0)269653970 (and 300 more digits...) % 1
Real FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that toRational generates garbage for non-finite arguments:
Example2 expressions toRational (1/0 :: Float)340282366920938463463374607431768211456 % 1toRational (0/0 :: Float)510423550381407695195061911147652317184 % 1
Real IntDefined in ghc-internal-9.1401.0 · GHC.Internal.RealReal WordDefined in ghc-internal-9.1401.0 · GHC.Internal.RealReal Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordReal Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordReal Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordReal Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordReal HalfDefined in half-0.3.3 · Numeric.Half.InternalReal CardinalityDefined in random-1.3.1 · System.Random.GFiniteThis is needed only as a superclass of Integral.
Real ScientificDefined in scientific-0.3.9.0 · Data.ScientificWARNING: toRational needs to compute the Integer magnitude:
10^e. If applied to a huge exponent this could fill up all space and crash your program!Avoid applying toRational (or realToFrac) to scientific numbers coming from an untrusted source and use toRealFloat instead. The latter guards against excessive space usage.
Real I8Defined in text-2.1.3 · Data.Text.ForeignReal DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeReal NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeReal StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonReal StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonReal BaudRateDefined in unix-2.8.8.0 · System.Posix.Terminal.CommonIntegral a => Real (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealReal a => Real (Blind a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersReal a => Real (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersReal a => Real (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersReal a => Real (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersReal a => Real (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersReal a => Real (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersReal a => Real (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesReal a => Real (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesReal a => Real (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityReal a => Real (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdHasResolution a => Real (Fixed a)Defined in base-4.22.0.0 · Data.FixedReal a => Real (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstReal a => Real (Tagged s a)Defined in tagged-0.8.11 · Data.TaggedReal (f (g a)) => Real (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
Extracting components of fractions.
Methods
properFraction :: Integral b => a -> (b, a)The function properFraction takes a real fractional number
xand returns a pair(n,f)such thatx = n+f, and:nis an integral number with the same sign asx; andfis a fraction with the same type and sign asx, and with absolute value less than1.
The default definitions of the ceiling, floor, truncate and round functions are in terms of properFraction.
truncate :: Integral b => a -> btruncate xreturns the integer nearestxbetween zero andxround :: Integral b => a -> bround xreturns the nearest integer tox; the even integer ifxis equidistant between two integersceiling :: Integral b => a -> bceiling xreturns the least integer not less thanxfloor :: Integral b => a -> bfloor xreturns the greatest integer not greater thanx
Instances17RealFrac, …
RealFrac SecondsDefined in clock-0.8.4 · System.Clock.SecondsRealFrac CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRealFrac CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesRealFrac DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that results for non-finite arguments are garbage:
Example2 expressions [ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0] ] :: [Int][0,0,0,0,0,0,0,0,0]map properFraction [-1/0, 0/0, 1/0] :: [(Int, Double)][(0,0.0),(0,0.0),(0,0.0)]
and get even more non-sensical if you ask for Integer instead of Int.
RealFrac FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that results for non-finite arguments are garbage:
Example2 expressions [ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0 :: Float] ] :: [Int][0,0,0,0,0,0,0,0,0]map properFraction [-1/0, 0/0, 1/0] :: [(Int, Float)][(0,0.0),(0,0.0),(0,0.0)]
and get even more non-sensical if you ask for Integer instead of Int.
RealFrac HalfDefined in half-0.3.3 · Numeric.Half.InternalRealFrac ScientificDefined in scientific-0.3.9.0 · Data.ScientificWARNING: the methods of the
RealFracinstance need to compute the magnitude10^e. If applied to a huge exponent this could take a long time. Even worse, when the destination type is unbounded (i.e. Integer) it could fill up all space and crash your program!RealFrac DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeRealFrac NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeIntegral a => RealFrac (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealRealFrac a => RealFrac (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesRealFrac a => RealFrac (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityRealFrac a => RealFrac (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdHasResolution a => RealFrac (Fixed a)Defined in base-4.22.0.0 · Data.FixedRealFrac a => RealFrac (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstRealFrac a => RealFrac (Tagged s a)Defined in tagged-0.8.11 · Data.TaggedRealFrac (f (g a)) => RealFrac (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.Compose
Constraint representing the fact that the field x belongs to
the record type r and has field type a. This will be solved
automatically, but manual instances may be provided as well.
Methods
getField :: r -> aSelector function to extract the field from the record.
Conversion of values to readable Strings.
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
xis less thand(associativity is ignored). Thus, ifdis0then the result is never surrounded in parentheses; ifdis11it 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 athe 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 = 5Note that right-associativity of :^: is ignored. For example,
show (Leaf 1 :^: Leaf 2 :^: Leaf 3)produces the string"Leaf 1 :^: (Leaf 2 :^: Leaf 3)".
Instances620Show, …
Show ASCIIStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow PrintableStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow UnicodeStringDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow ADefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyShow BDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyShow CDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyShow OrdADefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyShow OrdBDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyShow OrdCDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PolyShow WitnessDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PropertyShow QCGenDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.RandomShow ConfidenceDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.StateShow TestProgressDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.StateShow ArgsDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.TestShow ResultDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.TestShow CellDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.TextShow StrDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.TextShow LitDefined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensShow NumberDefined in aeson-2.2.5.1 · Data.Aeson.Decoding.TokensShow KeyDefined in aeson-2.2.5.1 · Data.Aeson.KeyShow AesonExceptionDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalShow DotNetTimeDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalShow JSONPathElementDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalShow OptionsDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalShow SumEncodingDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalShow ValueDefined in aeson-2.2.5.1 · Data.Aeson.Types.InternalSince version 1.5.6.0 version object values are printed in lexicographic key order
Example1 expression toJSON $ H.fromList [("a", True), ("z", False)]Object (fromList [("a",Bool True),("z",Bool False)])
Example1 expression toJSON $ H.fromList [("z", False), ("a", True)]Object (fromList [("a",Bool True),("z",Bool False)])
Show AsyncCancelledDefined in async-2.2.6 · Control.Concurrent.Async.InternalShow ExceptionInLinkedThreadDefined in async-2.2.6 · Control.Concurrent.Async.InternalShow WardenExceptionDefined in async-2.2.6 · Control.Concurrent.Async.WardenShow ByteArrayDefined in base-4.22.0.0 · Data.Array.ByteShow CCFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow ConcFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow DebugFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow DoCostCentresDefined in base-4.22.0.0 · GHC.RTS.FlagsShow DoHeapProfileDefined in base-4.22.0.0 · GHC.RTS.FlagsShow DoTraceDefined in base-4.22.0.0 · GHC.RTS.FlagsShow GCFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow GiveGCStatsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow HpcFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow IoManagerFlagDefined in base-4.22.0.0 · GHC.RTS.FlagsShow MiscFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow ParFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow ProfFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow RTSFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow TickyFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow TraceFlagsDefined in base-4.22.0.0 · GHC.RTS.FlagsShow GCDetailsDefined in base-4.22.0.0 · GHC.StatsShow RTSStatsDefined in base-4.22.0.0 · GHC.StatsShow TimeoutDefined in base-4.22.0.0 · System.TimeoutShow OptionsDefined in bifunctors-5.6.3 · Data.Bifunctor.THShow BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder · orphanShow FormatModeDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloatShow FloatingDecimalDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.D2SShow FloatingDecimalDefined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.F2SShow ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeShow SizeOverflowExceptionDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeShow ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalShow ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalShow Int54Defined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesShow JSStringDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesShow JSValueDefined in canonical-json-0.6.0.1 · Text.JSON.Canonical.TypesShow CountFailureDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.SizeShow ClosureTreeOptionsDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.TreeShow TraverseCyclicClosuresDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.TreeShow TreeDepthDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.GHC.Heap.TreeShow SchemaErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.CanonicalShow FatalErrorDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.PanicShow ByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArrayShow SlicedByteArrayDefined in cborg-0.2.10.0 · Codec.CBOR.ByteArray.SlicedShow TokenTypeDefined in cborg-0.2.10.0 · Codec.CBOR.DecodingShow EncodingDefined in cborg-0.2.10.0 · Codec.CBOR.EncodingShow TokensDefined in cborg-0.2.10.0 · Codec.CBOR.EncodingShow LocDefined in cborg-0.2.10.0 · Codec.CBOR.FlatTermShow TermTokenDefined in cborg-0.2.10.0 · Codec.CBOR.FlatTermShow DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadShow TermDefined in cborg-0.2.10.0 · Codec.CBOR.TermShow ClockDefined in clock-0.8.4 · System.ClockShow TimeSpecDefined in clock-0.8.4 · System.ClockShow SecondsDefined in clock-0.8.4 · System.Clock.SecondsShow IntSetDefined in containers-0.8 · Data.IntSet.InternalShow IntersectionDefined in containers-0.8 · Data.IntSet.InternalShow BitQueueDefined in containers-0.8 · Utils.Containers.Internal.BitQueueShow BitQueueBDefined in containers-0.8 · Utils.Containers.Internal.BitQueueShow FileTypeDefined in directory-1.3.10.0 · System.Directory.Internal.CommonShow PermissionsDefined in directory-1.3.10.0 · System.Directory.Internal.CommonShow WhetherFollowDefined in directory-1.3.10.0 · System.Directory.Internal.CommonShow XdgDirectoryDefined in directory-1.3.10.0 · System.Directory.Internal.CommonShow XdgDirectoryListDefined in directory-1.3.10.0 · System.Directory.Internal.CommonShow TimeoutDefined in extra-1.8 · System.Time.ExtraShow ForallVisFlagDefined in ghc-boot-th-9.14.1 · GHC.Boot.TH.PprShow DocDefined in ghc-boot-th-9.14.1 · GHC.Boot.TH.PprLibShow VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderShow ClosureTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.ClosureTypesShow BlockReasonDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncShow ThreadIdDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncShow ThreadStatusDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncShow NestedAtomicallyDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow NoMatchingContinuationPromptDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow NoMethodErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow NonTerminationDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow PatternMatchFailDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow RecConErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow RecSelErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow RecUpdErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow TypeErrorDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Exception.BaseShow ConstrDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataShow ConstrRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataShow DataRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataShow DataTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataShow FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataShow DynamicDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DynamicShow AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow SomeTypeRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalShow VersionDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.VersionShow ControlMessageDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.ControlShow EPollFdDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollShow EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollShow EventTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.EPollShow EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesShow EventLifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesShow LifetimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesShow TimeoutDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.Internal.TypesShow FdKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.ManagerShow StateDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.ManagerShow EventDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.PollShow PollFdDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.PollShow StateDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.TimerManagerShow UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.UniqueShow ErrorCallDefined in ghc-internal-9.1401.0 · GHC.Internal.ExceptionShow ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeShow SomeExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeShow WhileHandlingDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeShow FingerprintDefined in ghc-internal-9.1401.0 · GHC.Internal.Fingerprint.TypeShow CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesShow IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrShow WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrShow ForeignSrcLangDefined in ghc-internal-9.1401.0 · GHC.Internal.ForeignSrcLangShow AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow BoxDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow PrimTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow TsoFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow WhatNextDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow WhyBlockedDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesShow StgInfoTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesShow CostCentreDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesShow CostCentreStackDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesShow IndexTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesShow StgTSOProfInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesShow MaskingStateDefined in ghc-internal-9.1401.0 · GHC.Internal.IOShow SeekModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.DeviceShow CodingFailureModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Encoding.FailureShow CodingProgressDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Encoding.TypesShow TextEncodingDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Encoding.TypesShow AllocationLimitExceededDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow AssertionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow BlockedIndefinitelyOnMVarDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow BlockedIndefinitelyOnSTMDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow CompactionFailedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow DeadlockDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow FixIOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow IOErrorTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow IOExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow SomeAsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionShow FDDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.FDShow HandlePosnDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.HandleShow FileLockingNotSupportedDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.Lock.CommonShow BufferModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesShow HandleDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesShow HandleTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesShow NewlineDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesShow NewlineModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesShow IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeShow IoSubSystemDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.SubSystemShow InfoProvDefined in ghc-internal-9.1401.0 · GHC.Internal.InfoProv.TypesShow Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntShow ExtensionDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensionsShow CCFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow ConcFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow DebugFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow DoCostCentresDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow DoHeapProfileDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow DoTraceDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow GCFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow GiveGCStatsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow HpcFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow IoManagerFlagDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow MiscFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow ParFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow ProfFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow RTSFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow TickyFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow TraceFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.RTS.FlagsShow FractionalExponentBaseDefined in ghc-internal-9.1401.0 · GHC.Internal.RealShow ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsShow WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsShow ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfShow WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfShow PointernessDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.DecodeShow StackEntryDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.DecodeShow CallStackDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow SrcLocDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow StaticPtrInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.StaticPtrShow GCDetailsDefined in ghc-internal-9.1401.0 · GHC.Internal.StatsShow RTSStatsDefined in ghc-internal-9.1401.0 · GHC.Internal.StatsShow CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CTimerDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesShow AnnLookupDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow AnnTargetDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow BangDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow BndrVisDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow BodyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow BytesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow CallconvDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow ClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow ConDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow DecDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow DerivClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow DerivStrategyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow DocLocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow ExpDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow FamilyResultSigDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow FixityDirectionDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow ForeignDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow FunDepDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow GuardDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow InfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow InjectivityAnnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow InlineDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow LitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow LocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow MatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow ModNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow ModuleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow ModuleInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow NameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow NameFlavourDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow NameSpaceDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow NamespaceSpecifierDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow OccNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow OverlapDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow PatDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow PatSynArgsDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow PatSynDirDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow PhasesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow PkgNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow PragmaDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow RangeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow RoleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow RuleBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow RuleMatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow SafetyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow SpecificityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow StmtDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow TyLitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow TySynEqnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow TypeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow TypeFamilyHeadDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow LexemeDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.Read.LexShow NumberDefined in ghc-internal-9.1401.0 · GHC.Internal.Text.Read.LexShow SomeCharDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsShow SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsShow SomeNatDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsShow BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanShow FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanShow IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow KindRepDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow LevityDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow ModuleDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow RuntimeRepDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow TrNameDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow TyConDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow TypeLitSortDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow VecCountDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow VecElemDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeShow Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow HalfDefined in half-0.3.3 · Numeric.Half.InternalShow URIDefined in network-uri-2.6.4.2 · Network.URIShow URIAuthDefined in network-uri-2.6.4.2 · Network.URIShow TimeLocaleDefined in old-locale-1.0.0.7 · System.LocaleShow EncodingExceptionDefined in os-string-2.0.8 · System.OsString.Encoding.InternalShow OsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesShow OsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesOn windows, decodes as UCS-2. On unix prints the raw bytes without decoding.
Show PosixCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesShow PosixStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesPrints the raw bytes without decoding.
Show WindowsCharDefined in os-string-2.0.8 · System.OsString.Internal.TypesShow WindowsStringDefined in os-string-2.0.8 · System.OsString.Internal.TypesDecodes as UCS-2.
Show ParseErrorDefined in parsec-3.1.18.0 · Text.Parsec.ErrorShow SourcePosDefined in parsec-3.1.18.0 · Text.Parsec.PosShow ModeDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJShow StyleDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJShow TextDetailsDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJShow PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassShow DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJShow PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassShow CmdSpecDefined in process-1.6.26.1 · System.Process.CommonShow CreateProcessDefined in process-1.6.26.1 · System.Process.CommonShow StdStreamDefined in process-1.6.26.1 · System.Process.CommonShow CommunicationHandleDefined in process-1.6.26.1 · System.Process.CommunicationHandle.InternalShow CardinalityDefined in random-1.3.1 · System.Random.GFiniteShow StdGenDefined in random-1.3.1 · System.Random.InternalShow ScientificDefined in scientific-0.3.9.0 · Data.ScientificSee formatScientific if you need more control over the rendering.
Show SMGenDefined in splitmix-0.1.3.2 · System.Random.SplitMixShow SMGenDefined in splitmix-0.1.3.2 · System.Random.SplitMix32Show DecodingDefined in text-2.1.3 · Data.Text.EncodingShow UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorShow I8Defined in text-2.1.3 · Data.Text.ForeignShow TextDefined in text-2.1.3 · Data.Text.Show · orphanShow BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderShow PartialUtf8CodePointDefined in text-2.1.3 · Data.Text.Internal.EncodingShow Utf8StateDefined in text-2.1.3 · Data.Text.Internal.EncodingShow DecoderStateDefined in text-2.1.3 · Data.Text.Internal.Encoding.Utf8Show SizeDefined in text-2.1.3 · Data.Text.Internal.Fusion.SizeShow TextDefined in text-2.1.3 · Data.Text.Lazy · orphanShow FPFormatDefined in text-2.1.3 · Data.Text.Lazy.Builder.RealFloatShow IterDefined in text-2.1.3 · Data.Text.UnsafeShow ShortTextDefined in text-short-0.1.6.1 · Data.Text.Short.InternalShow ConstructorInfoDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeShow ConstructorVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeShow DatatypeInfoDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeShow DatatypeVariantDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeShow FieldStrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeShow StrictnessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeShow UnpackednessDefined in th-abstraction-0.7.2.0 · Language.Haskell.TH.DatatypeShow CalendarDiffDaysDefined in time-1.15 · Data.Time.Format.ISO8601 · orphanShow DayDefined in time-1.15 · Data.Time.Calendar.Gregorian · orphanShow MonthDefined in time-1.15 · Data.Time.Calendar.MonthShow as
yyyy-mm.Show QuarterDefined in time-1.15 · Data.Time.Calendar.QuarterShow as
yyyy-Qn.Show QuarterOfYearDefined in time-1.15 · Data.Time.Calendar.QuarterShow DayOfWeekDefined in time-1.15 · Data.Time.Calendar.WeekShow AbsoluteTimeDefined in time-1.15 · Data.Time.Clock.TAI · orphanShow DiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.DiffTimeShow NominalDiffTimeDefined in time-1.15 · Data.Time.Clock.Internal.NominalDiffTimeShow SystemTimeDefined in time-1.15 · Data.Time.Clock.Internal.SystemTimeShow UTCTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.ZonedTime · orphanShow UniversalTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.LocalTime · orphanShow TimeLocaleDefined in time-1.15 · Data.Time.Format.LocaleShow CalendarDiffTimeDefined in time-1.15 · Data.Time.Format.ISO8601 · orphanShow LocalTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.LocalTimeShow TimeOfDayDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeOfDayShow TimeZoneDefined in time-1.15 · Data.Time.LocalTime.Internal.TimeZoneThis only shows the time zone name, or offset if the name is empty.
Show ZonedTimeDefined in time-1.15 · Data.Time.LocalTime.Internal.ZonedTimeFor the time zone, this only shows the name, or offset if the name is empty.
Show DirTypeDefined in unix-2.8.8.0 · System.Posix.Directory.CommonShow DLDefined in unix-2.8.8.0 · System.Posix.DynamicLinker.PrimShow RTLDFlagsDefined in unix-2.8.8.0 · System.Posix.DynamicLinker.PrimShow CAttributesDefined in unix-2.8.8.0 · System.Posix.Files.CommonShow StatxFlagsDefined in unix-2.8.8.0 · System.Posix.Files.CommonShow StatxMaskDefined in unix-2.8.8.0 · System.Posix.Files.CommonShow OpenFileFlagsDefined in unix-2.8.8.0 · System.Posix.IO.CommonShow OpenModeDefined in unix-2.8.8.0 · System.Posix.IO.CommonShow ProcessStatusDefined in unix-2.8.8.0 · System.Posix.Process.InternalsShow ResourceDefined in unix-2.8.8.0 · System.Posix.ResourceShow ResourceLimitDefined in unix-2.8.8.0 · System.Posix.ResourceShow ResourceLimitsDefined in unix-2.8.8.0 · System.Posix.ResourceShow BaudRateDefined in unix-2.8.8.0 · System.Posix.Terminal.CommonShow GroupEntryDefined in unix-2.8.8.0 · System.Posix.User.CommonShow UserEntryDefined in unix-2.8.8.0 · System.Posix.User.CommonShow SubHashPathDefined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugShow UUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalShow UnpackedUUIDDefined in uuid-types-1.0.6.1 · Data.UUID.Types.InternalShow SizeDefined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle.SizeShow ()Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow1 f => Show (Fix f)Defined in data-fix-0.3.4 · Data.FixShow (Blind a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow (Encoding' a)Defined in aeson-2.2.5.1 · Data.Aeson.Encoding.InternalShow (ConstPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.ConstPtrShow (ForeignPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ForeignPtrShow (FunPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrShow (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrShow (SChar c)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsShow (SSymbol s)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsShow (SNat n)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsShow (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJShow (Seed g)Defined in random-1.3.1 · System.Random.InternalShow a => Show (Fixed a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (InfiniteList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (Large a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (Negative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (NoShrink a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (NonEmptyList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (NonNegative a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (NonPositive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (NonZero a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (OrderedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (Positive a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (Shrink2 a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (Small a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (Smart a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (SortedList a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ModifiersShow a => Show (IResult a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalShow a => Show (Result a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.InternalShow a => Show (Complex a)Defined in base-4.22.0.0 · Data.ComplexShow a => Show (First a)Defined in base-4.22.0.0 · Data.SemigroupShow a => Show (Last a)Defined in base-4.22.0.0 · Data.SemigroupShow a => Show (Max a)Defined in base-4.22.0.0 · Data.SemigroupShow a => Show (Min a)Defined in base-4.22.0.0 · Data.SemigroupShow a => Show (Decoder a)Defined in binary-0.8.9.3 · Data.Binary.Get.InternalShow a => Show (DecodedToken a)Defined in cborg-0.2.10.0 · Codec.CBOR.ReadShow a => Show (LongToken a)Defined in cborg-0.2.10.0 · Codec.CBOR.ReadShow a => Show (IntMap a)Defined in containers-0.8 · Data.IntMap.InternalShow a => Show (Seq a)Defined in containers-0.8 · Data.Sequence.InternalShow a => Show (ViewL a)Defined in containers-0.8 · Data.Sequence.InternalShow a => Show (ViewR a)Defined in containers-0.8 · Data.Sequence.InternalShow a => Show (Intersection a)Defined in containers-0.8 · Data.Set.InternalShow a => Show (Set a)Defined in containers-0.8 · Data.Set.InternalShow a => Show (PostOrder a)Defined in containers-0.8 · Data.TreeShow a => Show (Tree a)Defined in containers-0.8 · Data.TreeShow a => Show (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalShow a => Show (DList a)Defined in dlist-1.0 · Data.DList.InternalShow a => Show (ExitCase a)Defined in exceptions-0.10.11 · Control.Monad.CatchShow a => Show (RB a)Defined in extra-1.8 · Data.List.ExtraShow a => Show (Hex a)Defined in formatting-7.2.0 · Data.Text.Format.TypesShow a => Show (Shown a)Defined in formatting-7.2.0 · Data.Text.Format.TypesShow a => Show (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow a => Show (And a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (Iff a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (Ior a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (Xor a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.BitsShow a => Show (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityThis instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed
Show a => Show (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidShow a => Show (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidShow a => Show (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdShow a => Show (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow a => Show (ExceptionWithContext a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeShow a => Show (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListShow a => Show (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow a => Show (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealShow a => Show (Hashed a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassShow a => Show (AnnotDetails a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJShow a => Show (Span a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJShow a => Show (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayShow a => Show (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayShow a => Show (Maybe a)Defined in strict-0.5.1 · Data.Strict.MaybeShow a => Show (Array a)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.ArrayShow a => Show (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalShow a => Show (Vector a)Defined in vector-0.13.2.0 · Data.VectorShow a => Show (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictShow a => Show (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow a => Show [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow b => Show (GenClosure b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow b => Show (GenStackField b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow b => Show (GenStackFrame b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow b => Show (GenStgStackClosure b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresShow e => Show (NoBacktrace e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeShow flag => Show (TyVarBndr flag)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxShow g => Show (StateGen g)Defined in random-1.3.1 · System.Random.InternalShow g => Show (AtomicGen g)Defined in random-1.3.1 · System.Random.StatefulShow g => Show (IOGen g)Defined in random-1.3.1 · System.Random.StatefulShow g => Show (STGen g)Defined in random-1.3.1 · System.Random.StatefulShow g => Show (TGen g)Defined in random-1.3.1 · System.Random.StatefulShow k => Show (Error k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugShow k => Show (Validity k)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal.DebugShow m => Show (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupShow p => Show (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow v => Show (KeyMap v)Defined in aeson-2.2.5.1 · Data.Aeson.KeyMapShow vertex => Show (SCC vertex)Defined in containers-0.8 · Data.Graph(Functor f, Show1 f) => Show (Mu f)Defined in data-fix-0.3.4 · Data.Fix(Functor f, Show1 f) => Show (Nu f)Defined in data-fix-0.3.4 · Data.Fix(Show a, Storable a) => Show (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Storable(Show a, Prim a) => Show (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArray(Show a, Prim a) => Show (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Primitive(Show a, Unbox a) => Show (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphanHasResolution a => Show (Fixed a)Defined in base-4.22.0.0 · Data.FixedShow (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyShow (TypeRep a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalShow (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (UAddr p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (ST s a)Defined in ghc-internal-9.1401.0 · GHC.Internal.STShow (a -> b)Defined in base-4.22.0.0 · Text.Show.Functions · orphanShow (f a) => Show (Zippy f a)Defined in semialign-1.4 · Data.ZipShow a => Show (Shrinking s a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Modifiers(Show1 f, Show a) => Show (Lift f a)Defined in transformers-0.6.1.2 · Control.Applicative.Lift(Show1 m, Show a) => Show (MaybeT m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Maybe(Ix a, Show a, Show b) => Show (Array a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Arr(Ix ix, Show ix, Show e, IArray UArray e) => Show (UArray ix e)Defined in array-0.5.8.0 · Data.Array.Base(Show a, Show b) => Show (Fun a b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function(Show a, Show b) => Show (Arg a b)Defined in base-4.22.0.0 · Data.Semigroup(Show a, Show b) => Show (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Show a, Show b) => Show (Either a b)Defined in strict-0.5.1 · Data.Strict.Either(Show a, Show b) => Show (These a b)Defined in strict-0.5.1 · Data.Strict.These(Show a, Show b) => Show (Pair a b)Defined in strict-0.5.1 · Data.Strict.Tuple(Show a, Show b) => Show (These a b)Defined in these-1.2.1 · Data.These(Show a, Show b) => Show (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b) => Show (a :-> b)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.Function(Show k, Show a) => Show (Map k a)Defined in containers-0.8 · Data.Map.Internal(Show k, Show e) => Show (TkArray k e)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.Tokens(Show k, Show e) => Show (TkRecord k e)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.Tokens(Show k, Show e) => Show (Tokens k e)Defined in aeson-2.2.5.1 · Data.Aeson.Decoding.Tokens(Show k, Show v) => Show (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.Internal(GShow (Rep1 f a), Generic1 f) => Show (FunctorClassesDefault f a)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalShow (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionShow (OrderingI a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.OrdShow (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityShow (bi a b) => Show (Biap bi a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.BiapShow (f a) => Show (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidShow (f a) => Show (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalShow (f p) => Show (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (p (Fix p a) a) => Show (Fix p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.FixShow (p a a) => Show (Join p a)Defined in bifunctors-5.6.3 · Data.Bifunctor.JoinShow a => Show (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.ConstShow a => Show (Constant a b)Defined in transformers-0.6.1.2 · Data.Functor.ConstantShow b => Show (Tagged s b)Defined in tagged-0.8.11 · Data.Tagged(Show1 f, Show a) => Show (Backwards f a)Defined in transformers-0.6.1.2 · Control.Applicative.Backwards(Show1 f, Show a) => Show (IdentityT f a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Identity(Show1 f, Show a) => Show (Reverse f a)Defined in transformers-0.6.1.2 · Data.Functor.Reverse(Show (f a), Show (g a), Show a) => Show (These1 f g a)Defined in these-1.2.1 · Data.Functor.These(Show a, Show b, Show c) => Show (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show e, Show1 m, Show a) => Show (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Show w, Show1 m, Show a) => Show (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.Lazy(Show w, Show1 m, Show a) => Show (WriterT w m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Writer.StrictShow (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityShow c => Show (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Show (f a), Show (g a)) => Show (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product(Show (f a), Show (g a)) => Show (Sum f g a)Defined in base-4.22.0.0 · Data.Functor.Sum(Show (f p), Show (g p)) => Show ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Show (f p), Show (g p)) => Show ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Show a, Show b, Show c, Show d) => Show (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow (f (g a)) => Show (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeShow (f (g p)) => Show ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (f a) => Show (Clown f a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.ClownShow (f p) => Show (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (g b) => Show (Joker g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.JokerShow (p a b) => Show (WrappedBifunctor p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.WrappedShow (p b a) => Show (Flip p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Flip(Show a, Show b, Show c, Show d, Show e) => Show (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show (f a b), Show (g a b)) => Show (Product f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Product(Show (p a b), Show (q a b)) => Show (Sum p q a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Sum(Show a, Show b, Show c, Show d, Show e, Show f) => Show (a, b, c, d, e, f)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow (f (p a b)) => Show (Tannen f p a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Tannen(Show a, Show b, Show c, Show d, Show e, Show f, Show g) => Show (a, b, c, d, e, f, g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h) => Show (a, b, c, d, e, f, g, h)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowShow (p (f a) (g b)) => Show (Biff p f g a b)Defined in bifunctors-5.6.3 · Data.Bifunctor.Biff(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i) => Show (a, b, c, d, e, f, g, h, i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j) => Show (a, b, c, d, e, f, g, h, i, j)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k) => Show (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l) => Show (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m, Show n) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show(Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m, Show n, Show o) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-internal-9.1401.0 · GHC.Internal.Show
A cost-centre from GHC's cost-center profiler.
A cost-centre stack from GHC's cost-center profiler.
CallStacks are a lightweight method of obtaining a partial call-stack at any point in the program.
A function can request its call-site with the HasCallStack constraint. For example, we can define
putStrLnWithCallStack :: HasCallStack => String -> IO ()
as a variant of putStrLn that will get its call-site and print it,
along with the string given as argument. We can access the
call-stack inside putStrLnWithCallStack with callStack.
:{putStrLnWithCallStack :: HasCallStack => String -> IO ()putStrLnWithCallStack msg = do putStrLn msg putStrLn (prettyCallStack callStack):}
Thus, if we call putStrLnWithCallStack we will get a formatted call-stack
alongside our string.
putStrLnWithCallStack "hello"helloCallStack (from HasCallStack): putStrLnWithCallStack, called at <interactive>:... in interactive:Ghci...
GHC solves HasCallStack constraints in three steps:
If there is a CallStack in scope -- i.e. the enclosing function has a HasCallStack constraint -- GHC will append the new call-site to the existing CallStack.
If there is no CallStack in scope -- e.g. in the GHCi session above -- and the enclosing definition does not have an explicit type signature, GHC will infer a HasCallStack constraint for the enclosing definition (subject to the monomorphism restriction).
If there is no CallStack in scope and the enclosing definition has an explicit type signature, GHC will solve the HasCallStack constraint for the singleton CallStack containing just the current call-site.
CallStacks do not interact with the RTS and do not require compilation
with -prof. On the other hand, as they are built up explicitly via the
HasCallStack constraints, they will generally not contain as much
information as the simulated call-stacks maintained by the RTS.
A CallStack is a [(String, SrcLoc)]. The String is the name of
function that was called, the SrcLoc is the call-site. The list is
ordered with the most recently called function at the head.
NOTE: The intrepid user may notice that HasCallStack is just an
alias for an implicit parameter ?callStack :: CallStack. This is an
implementation detail and should not be considered part of the
CallStack API, we may decide to change the implementation in the
future.
Instances4IsList, Show, NFData, Item
Request a CallStack.
NOTE: The implicit parameter ?callStack :: CallStack is an
implementation detail and should not be considered part of the
CallStack API, we may decide to change the implementation in the
future.
A single location in the source code.
Constructors
SrcLocsrcLocPackage :: [Char]srcLocModule :: [Char]srcLocFile :: [Char]srcLocStartLine :: !IntsrcLocStartCol :: !IntsrcLocEndLine :: !IntsrcLocEndCol :: !Int
Instances5Eq, Show, Generic, NFData, Rep
Eq SrcLocDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.TypesShow SrcLocDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowGeneric SrcLocDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsNFData SrcLocDefined in deepseq-1.5.1.0 · Control.DeepSeqtype Rep SrcLoc = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"SrcLoc"
"GHC.Internal.Stack.Types"
"ghc-internal"
'False) (C1 ('MetaCons"SrcLoc"
'PrefixI 'True) ((S1 ('MetaSel ('Just"srcLocPackage"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]) :*: (S1 ('MetaSel ('Just"srcLocModule"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]) :*: S1 ('MetaSel ('Just"srcLocFile"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Char]))) :*: ((S1 ('MetaSel ('Just"srcLocStartLine"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Just"srcLocStartCol"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :*: (S1 ('MetaSel ('Just"srcLocEndLine"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Just"srcLocEndCol"
) 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)))))
This class gives the string associated with a type-level symbol. There are instances of the class for every concrete literal: "hello", etc.
This type represents unknown type-level symbols.
Constructors
forall n. KnownSymbol n => SomeSymbol (Proxy n)
Instances4Eq, Ord, Read, Show
Eq SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsRead SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsShow SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLits
This class gives the integer associated with a type-level natural. There are instances of the class for every concrete literal: 0, 1, 2, etc.
A type synonym for Natural.
Previously, this was an opaque data type, but it was changed to a type synonym.
Instances1HasResolution
KnownNat n => HasResolution nDefined in base-4.22.0.0 · Data.FixedFor example,
Fixed 1000will give you a Fixed with a resolution of 1000.
This type represents unknown type-level natural numbers.
A value of type IO a is a computation which, when performed,
does some I/O before returning a value of type a.
There is really only one way to "perform" an I/O action: bind it to
Main.main in your program. When your program is run, the I/O will
be performed. It isn't possible to perform I/O from an arbitrary
function, unless that function is itself in the IO monad and called
at some point, directly or indirectly, from Main.main.
IO is a monad, so IO actions can be combined using either the do-notation
or the Prelude.>> and Prelude.>>= operations from the Prelude.Monad
class.
Instances47Monad, Functor, MonadFix, MonadFail, Applicative, GHCiSandboxIO, …
Monad IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadFix IODefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixMonadFail IODefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FailApplicative IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseGHCiSandboxIO IODefined in ghc-internal-9.1401.0 · GHC.Internal.GHCiQuote IODefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxAlternative IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadPlus IODefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadIO IODefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.IO.ClassQuasi IODefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxMonadCatch IODefined in exceptions-0.10.11 · Control.Monad.CatchMonadMask IODefined in exceptions-0.10.11 · Control.Monad.CatchMonadThrow IODefined in exceptions-0.10.11 · Control.Monad.CatchPrimBase IODefined in primitive-0.9.1.0 · Control.Monad.PrimitivePrimMonad IODefined in primitive-0.9.1.0 · Control.Monad.PrimitiveAlt IODefined in semigroupoids-6.0.2 · Data.Functor.AltThis instance does not actually satisfy the (<.>) right distributive law It instead satisfies the "left catch" law
Apply IODefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind IODefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassPlus IODefined in semigroupoids-6.0.2 · Data.Functor.PlusMonadError IOException IODefined in mtl-2.3.1 · Control.Monad.Error.ClassMArray IOUArray Int16 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int32 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int64 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int8 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Bool IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Char IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Double IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Float IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Int IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word16 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word32 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word64 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray Word8 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOArray e IODefined in array-0.5.8.0 · Data.Array.BaseMArray TArray e IODefined in stm-2.5.3.1 · Control.Concurrent.STM.TArrayWrites are slow in IO.
Storable e => MArray StorableArray e IODefined in array-0.5.8.0 · Data.Array.Storable.InternalsMArray IOUArray (FunPtr a) IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray (Ptr a) IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray IOUArray (StablePtr a) IODefined in array-0.5.8.0 · Data.Array.IO.InternalsSemigroup a => Semigroup (IO a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid a => Monoid (IO a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Basea ~ () => HPrintfType (IO a)Defined in base-4.22.0.0 · Text.Printfa ~ () => PrintfType (IO a)Defined in base-4.22.0.0 · Text.PrintfHasGetter (IO a) aDefined in StateVar-1.2.2 · Data.StateVartype PrimState IO = RealWorldDefined in primitive-0.9.1.0 · Control.Monad.Primitive
Instances23Bounded, Enum, Eq, Data, Ord, Read, …
Bounded OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEq OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesData OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesRead OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadShow OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.IxGeneric OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonoid OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseNFData OrderingDefined in deepseq-1.5.1.0 · Control.DeepSeqPretty OrderingDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty OrderingDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary OrderingDefined in binary-0.8.9.3 · Data.Binary.ClassFinite OrderingDefined in random-1.3.1 · System.Random.GFiniteArbitrary OrderingDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary OrderingDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction OrderingDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable OrderingDefined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON OrderingDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON OrderingDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONtype Rep Ordering = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Ordering"
"GHC.Internal.Types"
"ghc-internal"
'False) (C1 ('MetaCons"LT"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"EQ"
'PrefixI 'False) U1 :+: C1 ('MetaCons"GT"
'PrefixI 'False) U1))
Unicode General Categories (column 2 of the UnicodeData table) in the order they are listed in the Unicode standard (the Unicode Character Database, in particular).
Examples
Basic usage:
:t OtherLetterOtherLetter :: GeneralCategory
Eq instance:
UppercaseLetter == UppercaseLetterTrueUppercaseLetter == LowercaseLetterFalse
Ord instance:
NonSpacingMark <= MathSymbolTrue
Enum instance:
enumFromTo ModifierLetter SpacingCombiningMark[ModifierLetter,OtherLetter,NonSpacingMark,SpacingCombiningMark]
Text.Read.Read instance:
read "DashPunctuation" :: GeneralCategoryDashPunctuationread "17" :: GeneralCategory*** Exception: Prelude.read: no parse
Show instance:
show EnclosingMark"EnclosingMark"
Bounded instance:
minBound :: GeneralCategoryUppercaseLettermaxBound :: GeneralCategoryNotAssigned
Ix instance:
import GHC.Internal.Data.Ix ( index )index (OtherLetter,Control) FinalQuote12index (OtherLetter,Control) Format*** Exception: Error in array index
Constructors
UppercaseLetterLu: Letter, Uppercase
LowercaseLetterLl: Letter, Lowercase
TitlecaseLetterLt: Letter, Titlecase
ModifierLetterLm: Letter, Modifier
OtherLetterLo: Letter, Other
NonSpacingMarkMn: Mark, Non-Spacing
SpacingCombiningMarkMc: Mark, Spacing Combining
EnclosingMarkMe: Mark, Enclosing
DecimalNumberNd: Number, Decimal
LetterNumberNl: Number, Letter
OtherNumberNo: Number, Other
ConnectorPunctuationPc: Punctuation, Connector
DashPunctuationPd: Punctuation, Dash
OpenPunctuationPs: Punctuation, Open
ClosePunctuationPe: Punctuation, Close
InitialQuotePi: Punctuation, Initial quote
FinalQuotePf: Punctuation, Final quote
OtherPunctuationPo: Punctuation, Other
MathSymbolSm: Symbol, Math
CurrencySymbolSc: Symbol, Currency
ModifierSymbolSk: Symbol, Modifier
OtherSymbolSo: Symbol, Other
SpaceZs: Separator, Space
LineSeparatorZl: Separator, Line
ParagraphSeparatorZp: Separator, Paragraph
ControlCc: Other, Control
FormatCf: Other, Format
SurrogateCs: Other, Surrogate
PrivateUseCo: Other, Private Use
NotAssignedCn: Other, Not Assigned
Instances12Bounded, Enum, Eq, Ord, Read, Show, …
Bounded GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeEnum GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeEq GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeOrd GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeRead GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadShow GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeIx GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeGeneric GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsArbitrary GeneralCategoryDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary GeneralCategoryDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction GeneralCategoryDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.Functiontype Rep GeneralCategory = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"GeneralCategory"
"GHC.Internal.Unicode"
"ghc-internal"
'False) ((((C1 ('MetaCons"UppercaseLetter"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"LowercaseLetter"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TitlecaseLetter"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ModifierLetter"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherLetter"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NonSpacingMark"
'PrefixI 'False) U1 :+: C1 ('MetaCons"SpacingCombiningMark"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"EnclosingMark"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DecimalNumber"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LetterNumber"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherNumber"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ConnectorPunctuation"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DashPunctuation"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OpenPunctuation"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ClosePunctuation"
'PrefixI 'False) U1)))) :+: (((C1 ('MetaCons"InitialQuote"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"FinalQuote"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherPunctuation"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"MathSymbol"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CurrencySymbol"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ModifierSymbol"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OtherSymbol"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"Space"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LineSeparator"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ParagraphSeparator"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Control"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"Format"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Surrogate"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"PrivateUse"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NotAssigned"
'PrefixI 'False) U1)))))
16-bit unsigned integer type
Instances44Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordData Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordRead Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIx Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordStorable Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Word16Defined in base-4.22.0.0 · Text.PrintfNFData Word16Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary Word16Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Word16Defined in random-1.3.1 · System.RandomFinite Word16Defined in random-1.3.1 · System.Random.GFiniteUniform Word16Defined in random-1.3.1 · System.Random.InternalUniformRange Word16Defined in random-1.3.1 · System.Random.InternalArbitrary Word16Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Word16Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Word16Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Word16Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Word16Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Word16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseByteSource Word16Defined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.BuilderFromJSON Word16Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Word16Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Word16Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Word16Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Word16Defined in formatting-7.2.0 · Formatting.BuildableLift Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Word16Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Word16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Word16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseReportSchemaErrors m => FromJSON m Word16Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMonad m => ToJSON m Word16Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMArray IOUArray Word16 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Word16 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Word16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Word16Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ByteSink Word16 g = Takes2Bytes gDefined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.Builder
32-bit unsigned integer type
Instances45Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordData Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordRead Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIx Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordStorable Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Word32Defined in base-4.22.0.0 · Text.PrintfNFData Word32Defined in deepseq-1.5.1.0 · Control.DeepSeqMantissa Word32Defined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.InternalBinary Word32Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Word32Defined in random-1.3.1 · System.RandomFinite Word32Defined in random-1.3.1 · System.Random.GFiniteUniform Word32Defined in random-1.3.1 · System.Random.InternalUniformRange Word32Defined in random-1.3.1 · System.Random.InternalArbitrary Word32Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Word32Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Word32Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Word32Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Word32Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Word32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseByteSource Word32Defined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.BuilderFromJSON Word32Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Word32Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Word32Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Word32Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Word32Defined in formatting-7.2.0 · Formatting.BuildableLift Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Word32Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Word32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Word32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseReportSchemaErrors m => FromJSON m Word32Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMonad m => ToJSON m Word32Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMArray IOUArray Word32 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Word32 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Word32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Word32Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ByteSink Word32 g = Takes4Bytes gDefined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.Builder
64-bit unsigned integer type
Instances45Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordData Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordRead Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIx Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordStorable Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Word64Defined in base-4.22.0.0 · Text.PrintfNFData Word64Defined in deepseq-1.5.1.0 · Control.DeepSeqMantissa Word64Defined in bytestring-0.12.2.0 · Data.ByteString.Builder.RealFloat.InternalBinary Word64Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Word64Defined in random-1.3.1 · System.RandomFinite Word64Defined in random-1.3.1 · System.Random.GFiniteUniform Word64Defined in random-1.3.1 · System.Random.InternalUniformRange Word64Defined in random-1.3.1 · System.Random.InternalArbitrary Word64Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Word64Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Word64Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Word64Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Word64Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Word64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseByteSource Word64Defined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.BuilderFromJSON Word64Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Word64Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Word64Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Word64Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Word64Defined in formatting-7.2.0 · Formatting.BuildableLift Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Word64Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Word64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Word64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseReportSchemaErrors m => FromJSON m Word64Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMonad m => ToJSON m Word64Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMArray IOUArray Word64 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Word64 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Word64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Word64Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ByteSink Word64 g = Takes8Bytes gDefined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.Builder
8-bit unsigned integer type
Instances42Bounded, Enum, Eq, Integral, Data, Num, …
Bounded Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEnum Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordEq Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIntegral Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordData Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordRead Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordShow Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordIx Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordBits Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordFiniteBits Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordStorable Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg Word8Defined in base-4.22.0.0 · Text.PrintfNFData Word8Defined in deepseq-1.5.1.0 · Control.DeepSeqBinary Word8Defined in binary-0.8.9.3 · Data.Binary.ClassRandom Word8Defined in random-1.3.1 · System.RandomFinite Word8Defined in random-1.3.1 · System.Random.GFiniteUniform Word8Defined in random-1.3.1 · System.Random.InternalUniformRange Word8Defined in random-1.3.1 · System.Random.InternalArbitrary Word8Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary Word8Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction Word8Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable Word8Defined in hashable-1.5.1.0 · Data.Hashable.ClassPrim Word8Defined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox Word8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseByteSource Word8Defined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.BuilderFromJSON Word8Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey Word8Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON Word8Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey Word8Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable Word8Defined in formatting-7.2.0 · Formatting.BuildableLift Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray Word8Defined in array-0.5.8.0 · Data.Array.BaseMVector MVector Word8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector Word8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Word8 IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Word8 (ST s)Defined in array-0.5.8.0 · Data.Array.Basedata MVector s Word8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector Word8Defined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ByteSink Word8 g = Takes1Byte gDefined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.Builder
The strategy of combining computations that can throw exceptions by bypassing bound functions from the point an exception is thrown to the point that it is handled.
Is parameterized over the type of error information and
the monad type constructor.
It is common to use Either String as the monad type constructor
for an error monad in which error descriptions take the form of strings.
In that case and many other common cases the resulting monad is already defined
as an instance of the MonadError class.
You can also define your own error type and/or use a monad type constructor
other than Either or StringEither .
In these cases you will have to explicitly define instances of the MonadError
class.
(If you are using the deprecated IOErrorControl.Monad.Error or
Control.Monad.Trans.Error, you may also have to define an Error instance.)
Methods
throwError :: e -> m aIs used within a monadic computation to begin exception processing.
catchError :: m a -> (e -> m a) -> m aA handler function to handle previous errors and return to normal execution. A common idiom is:
do { action1; action2; action3 } `catchError` handlerwhere the
actionfunctions can call throwError. Note thathandlerand the do-block must have the same return type.
Instances17MonadError, …
MonadError IOException IODefined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError () MaybeDefined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError e (Either e)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError e m => MonadError e (MaybeT m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonad m => MonadError e (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError e m => MonadError e (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError e m => MonadError e (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError e m => MonadError e (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError e m => MonadError e (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Monoid w, MonadError e m) => MonadError e (AccumT w m)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Monoid w, MonadError e m) => MonadError e (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Monoid w, MonadError e m) => MonadError e (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Monoid w, MonadError e m) => MonadError e (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadError e m => MonadError e (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.Prim(Monoid w, MonadError e m) => MonadError e (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Monoid w, MonadError e m) => MonadError e (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Monoid w, MonadError e m) => MonadError e (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.Error.Class
See examples in Control.Monad.Reader.
Note, the partially applied function type (->) r is a simple reader monad.
See the instance declaration below.
Instances18MonadReader, …
MonadReader e m => MonadReader e (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonadReader r m => MonadReader r (MaybeT m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonad m => MonadReader r (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadReader r m => MonadReader r (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadReader r m => MonadReader r (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadReader r m => MonadReader r (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadReader r m => MonadReader r (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadReader r' m => MonadReader r' (SelectT r m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monoid w, MonadReader r m) => MonadReader r (AccumT w m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monoid w, MonadReader r m) => MonadReader r (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monoid w, MonadReader r m) => MonadReader r (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monoid w, MonadReader r m) => MonadReader r (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadReader r ((->) r)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadReader r m => MonadReader r (ParsecT s u m)Defined in parsec-3.1.18.0 · Text.Parsec.PrimMonadReader r' m => MonadReader r' (ContT r m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monad m, Monoid w) => MonadReader r (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monad m, Monoid w) => MonadReader r (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monad m, Monoid w) => MonadReader r (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class
Minimal definition is either both of get and put or just state
Instances17MonadState, …
MonadState s m => MonadState s (CatchT m)Defined in exceptions-0.10.11 · Control.Monad.Catch.PureMonadState s m => MonadState s (MaybeT m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonad m => MonadState s (StateT s m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonad m => MonadState s (StateT s m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadState s m => MonadState s (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadState s m => MonadState s (IdentityT m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadState s m => MonadState s (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadState s m => MonadState s (SelectT r m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monoid w, MonadState s m) => MonadState s (AccumT w m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monoid w, MonadState s m) => MonadState s (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monoid w, MonadState s m) => MonadState s (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monoid w, MonadState s m) => MonadState s (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadState s m => MonadState s (ParsecT s' u m)Defined in parsec-3.1.18.0 · Text.Parsec.PrimMonadState s m => MonadState s (ContT r m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monad m, Monoid w) => MonadState s (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monad m, Monoid w) => MonadState s (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monad m, Monoid w) => MonadState s (RWST r w s m)Defined in mtl-2.3.1 · Control.Monad.State.Class
A handler for a decoding error.
Function type for handling a coding error. It is supplied with two inputs:
A String that describes the error.
The input value that caused the error. If the error arose because the end of input was reached or could not be identified precisely, this value will be Nothing.
If the handler returns a value wrapped with Just, that value will be used in the output as the replacement for the invalid input. If it returns Nothing, no value will be used in the output.
Should the handler need to abort processing, it should use error or throw an exception (preferably a UnicodeException). It may use the description provided to construct a more helpful error report.
An exception type for representing Unicode encoding errors.
Instances4Eq, Show, Exception, NFData
Eq UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorShow UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorException UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.ErrorNFData UnicodeExceptionDefined in text-2.1.3 · Data.Text.Encoding.Error
A space efficient, packed, unboxed Unicode text type.
Instances37IsList, Eq, Data, Ord, Read, Show, …
IsList TextDefined in text-2.1.3 · Data.Text · orphanPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedLists['\55555'] :: Text"\65533"
Eq TextDefined in text-2.1.3 · Data.Text · orphanData TextDefined in text-2.1.3 · Data.Text · orphanThis instance preserves data abstraction at the cost of inefficiency. We omit reflection services for the sake of data abstraction.
This instance was created by copying the updated behavior of
Data.Set.Set andData.Map.Data.Map.Map. If you feel a mistake has been made, please feel free to submit improvements.The original discussion is archived here: could we get a Data instance for Data.Text.Text?
The followup discussion that changed the behavior of Set and
Data.Map.Mapis archived here: Proposal: Allow gunfold for Data.Map, ...Ord TextDefined in text-2.1.3 · Data.Text · orphanRead TextDefined in text-2.1.3 · Data.Text · orphanShow TextDefined in text-2.1.3 · Data.Text.Show · orphanIsString TextDefined in text-2.1.3 · Data.Text · orphanPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedStrings"\55555" :: Text"\65533"
Semigroup TextDefined in text-2.1.3 · Data.Text · orphanBeware:
stimeswill crash if the given number does not fit into anInt.Monoid TextDefined in text-2.1.3 · Data.Text · orphanPrintfArg TextDefined in text-2.1.3 · Data.Text · orphanNFData TextDefined in text-2.1.3 · Data.Text · orphanBinary TextDefined in text-2.1.3 · Data.Text · orphanHashable TextDefined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON TextDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey TextDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON TextDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey TextDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable TextDefined in formatting-7.2.0 · Formatting.BuildableFromBuilder TextDefined in formatting-7.2.0 · Formatting.FromBuilderHasLength TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.BaseToByteString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyByteString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToLazyText TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToString TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextToText TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextPrint TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ShowLift TextDefined in text-2.1.3 · Data.Text · orphanStrict Text TextDefined in strict-0.5.1 · Data.Strict.ClassesConvertable Double TextDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Float TextDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertText String TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text StringDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextConvertText Text TextDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ConvertTextMonad m => Stream Text m CharDefined in parsec-3.1.18.0 · Text.Parsec.Primtype Item Text = CharDefined in text-2.1.3 · Data.Text · orphan
Lift a computation from the argument monad to the constructed monad.
The parameterizable exception monad.
Computations are either exceptions (of any type) or normal values. These computations are plain values, and are unrelated to the Control.Exception mechanism, which is tied to the IO monad.
The return function returns a normal value, while >>= exits on
the first exception. For a variant that continues after an error
and collects all the errors, see Errors.
A monad transformer that adds exceptions to other monads.
ExceptT constructs a monad parameterized over two things:
e - An arbitrary exception type.
m - The inner monad.
The monadic computations are a plain values. They are unrelated to the Control.Exception mechanism, which is tied to the IO monad.
The return function yields a computation that produces the given
value, while >>= sequences two subcomputations, exiting on the
first exception.
Instances44MonadRWS, Generic1, MonadAccum, MonadError, MonadReader, MonadState, …
MonadRWS r w s m => MonadRWS r w s (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.RWS.ClassFunctor m => Generic1 (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadAccum w m => MonadAccum w (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.AccumThe accumulated value 'survives' an exception: even if the computation fails to deliver a result, we still have an accumulated value.
Monad m => MonadError e (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadReader r m => MonadReader r (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadState s m => MonadState s (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadWriter w m => MonadWriter w (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.Writer.ClassMonadSelect r m => MonadSelect r (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.SelectMonadTrans (ExceptT e)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonad m => Monad (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptFunctor m => Functor (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadFix m => MonadFix (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadFail m => MonadFail (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Functor m, Monad m) => Applicative (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptFoldable f => Foldable (ExceptT e f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptTraversable f => Traversable (ExceptT e f)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Functor m, Monad m, Monoid e) => Alternative (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Monad m, Monoid e) => MonadPlus (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadIO m => MonadIO (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadZip m => MonadZip (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Eq e, Eq1 m) => Eq1 (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Ord e, Ord1 m) => Ord1 (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Read e, Read1 m) => Read1 (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Show e, Show1 m) => Show1 (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptContravariant m => Contravariant (ExceptT e m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptMonadCont m => MonadCont (ExceptT e m)Defined in mtl-2.3.1 · Control.Monad.Cont.ClassMonadCatch m => MonadCatch (ExceptT e m)Defined in exceptions-0.10.11 · Control.Monad.CatchCatches exceptions from the base monad.
MonadMask m => MonadMask (ExceptT e m)Defined in exceptions-0.10.11 · Control.Monad.CatchMonadThrow m => MonadThrow (ExceptT e m)Defined in exceptions-0.10.11 · Control.Monad.CatchThrows exceptions into the base monad.
PrimMonad m => PrimMonad (ExceptT e m)Defined in primitive-0.9.1.0 · Control.Monad.PrimitiveDivisible m => Divisible (ExceptT e m)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.Divisible(Functor f, Monad f, Semigroup e) => Alt (ExceptT e f)Defined in semigroupoids-6.0.2 · Data.Functor.Alt(Functor m, Monad m) => Apply (ExceptT e m)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.Class(Functor m, Monad m) => Bind (ExceptT e m)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassDivise m => Divise (ExceptT e m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.Divise(Functor f, Monad f, Semigroup e, Monoid e) => Plus (ExceptT e f)Defined in semigroupoids-6.0.2 · Data.Functor.Plus(Eq e, Eq1 m, Eq a) => Eq (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Ord e, Ord1 m, Ord a) => Ord (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Read e, Read1 m, Read a) => Read (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Except(Show e, Show1 m, Show a) => Show (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ExceptGeneric (ExceptT e m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Excepttype Rep (ExceptT e m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Except"ExceptT"
"Control.Monad.Trans.Except"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"ExceptT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m (Either e a)))))type Rep1 (ExceptT e m) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Except"ExceptT"
"Control.Monad.Trans.Except"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"ExceptT"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (m :.: Rec1 (Either e))))type PrimState (ExceptT e m) = PrimState mDefined in primitive-0.9.1.0 · Control.Monad.Primitive
The reader monad transformer, which adds a read-only environment to the given monad.
The return function ignores the environment, while m >>= k
passes the inherited environment to both subcomputations:
Constructors
ReaderTrunReaderT :: r -> m a
Instances39Generic1, MonadAccum, MonadError, MonadReader, MonadState, MonadWriter, …
Generic1 (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadAccum w m => MonadAccum w (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.AccumMonadError e m => MonadError e (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonad m => MonadReader r (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonadState s m => MonadState s (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadWriter w m => MonadWriter w (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.Writer.ClassMonadSelect r' m => MonadSelect r' (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.SelectProvides a read-only environment of type
rto the 'strategy' function. However, the 'ranking' function (or more accurately, representation) has no access tor. Put another way, you can influence what values get chosen by changingr, but not how solutions are ranked.MonadTrans (ReaderT r)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderBindTrans (ReaderT e)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.TransMonad m => Monad (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderFunctor m => Functor (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadFix m => MonadFix (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadFail m => MonadFail (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderApplicative m => Applicative (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderAlternative m => Alternative (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadPlus m => MonadPlus (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadIO m => MonadIO (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadZip m => MonadZip (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderContravariant m => Contravariant (ReaderT r m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.ReaderMonadCont m => MonadCont (ReaderT r m)Defined in mtl-2.3.1 · Control.Monad.Cont.ClassMonadCatch m => MonadCatch (ReaderT r m)Defined in exceptions-0.10.11 · Control.Monad.CatchMonadMask m => MonadMask (ReaderT r m)Defined in exceptions-0.10.11 · Control.Monad.CatchMonadThrow m => MonadThrow (ReaderT r m)Defined in exceptions-0.10.11 · Control.Monad.CatchPrimMonad m => PrimMonad (ReaderT r m)Defined in primitive-0.9.1.0 · Control.Monad.PrimitiveDistributive g => Distributive (ReaderT e g)Defined in distributive-0.6.3 · Data.DistributiveDecidable m => Decidable (ReaderT r m)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleDivisible m => Divisible (ReaderT r m)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleAlt f => Alt (ReaderT e f)Defined in semigroupoids-6.0.2 · Data.Functor.AltApply m => Apply (ReaderT e m)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind m => Bind (ReaderT e m)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassConclude m => Conclude (ReaderT r m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.ConcludeDecide m => Decide (ReaderT r m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DecideDivise m => Divise (ReaderT r m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DivisePlus f => Plus (ReaderT e f)Defined in semigroupoids-6.0.2 · Data.Functor.PlusFunctorWithIndex i m => FunctorWithIndex (e, i) (ReaderT e m)Defined in indexed-traversable-0.1.5 · WithIndexGeneric (ReaderT r m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.Readertype Rep (ReaderT r m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Reader"ReaderT"
"Control.Monad.Trans.Reader"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"ReaderT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runReaderT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (r -> m a))))type Rep1 (ReaderT r m) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.Reader"ReaderT"
"Control.Monad.Trans.Reader"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"ReaderT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runReaderT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (FUN 'Many r :.: Rec1 m)))type PrimState (ReaderT r m) = PrimState mDefined in primitive-0.9.1.0 · Control.Monad.Primitive
A state monad parameterized by the type s of the state to carry.
The return function leaves the state unchanged, while >>= uses
the final state of the first computation as the initial state of
the second.
A state transformer monad parameterized by:
s- The state.m- The inner monad.
The return function leaves the state unchanged, while >>= uses
the final state of the first computation as the initial state of
the second.
Instances35MonadAccum, MonadError, MonadReader, MonadState, MonadWriter, MonadSelect, …
MonadAccum w m => MonadAccum w (StateT s m)Defined in mtl-2.3.1 · Control.Monad.AccumMonadError e m => MonadError e (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Error.ClassMonadReader r m => MonadReader r (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Reader.ClassMonad m => MonadState s (StateT s m)Defined in mtl-2.3.1 · Control.Monad.State.ClassMonadWriter w m => MonadWriter w (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Writer.ClassMonadSelect w m => MonadSelect w (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Select'Readerizes' the state: the 'ranking' function can see a value of type
s, but not modify it. Effectively, can be thought of as 'extending' the 'ranking' by all values ins, but whichsgets given to any rank calls is predetermined by the 'outer state' (and cannot change).MonadTrans (StateT s)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyBindTrans (StateT s)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.TransMonad m => Monad (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyFunctor m => Functor (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadFix m => MonadFix (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadFail m => MonadFail (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.Lazy(Functor m, Monad m) => Applicative (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.Lazy(Functor m, MonadPlus m) => Alternative (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadPlus m => MonadPlus (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadIO m => MonadIO (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyContravariant m => Contravariant (StateT s m)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyMonadCont m => MonadCont (StateT s m)Defined in mtl-2.3.1 · Control.Monad.Cont.ClassMonadCatch m => MonadCatch (StateT s m)Defined in exceptions-0.10.11 · Control.Monad.CatchMonadMask m => MonadMask (StateT s m)Defined in exceptions-0.10.11 · Control.Monad.CatchMonadThrow m => MonadThrow (StateT s m)Defined in exceptions-0.10.11 · Control.Monad.CatchPrimMonad m => PrimMonad (StateT s m)Defined in primitive-0.9.1.0 · Control.Monad.PrimitiveDecidable m => Decidable (StateT s m)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleDivisible m => Divisible (StateT s m)Defined in contravariant-1.5.6 · Data.Functor.Contravariant.DivisibleAlt f => Alt (StateT e f)Defined in semigroupoids-6.0.2 · Data.Functor.AltBind m => Apply (StateT s m)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind m => Bind (StateT s m)Defined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassConclude m => Conclude (StateT s m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.ConcludeDecide m => Decide (StateT s m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DecideDivise m => Divise (StateT s m)Defined in semigroupoids-6.0.2 · Data.Functor.Contravariant.DivisePlus f => Plus (StateT e f)Defined in semigroupoids-6.0.2 · Data.Functor.PlusGeneric (StateT s m a)Defined in transformers-0.6.1.2 · Control.Monad.Trans.State.LazyStrict (StateT s m a) (StateT s m a)Defined in strict-0.5.1 · Data.Strict.Classestype Rep (StateT s m a) = D1 ('MetaDataDefined in transformers-0.6.1.2 · Control.Monad.Trans.State.Lazy"StateT"
"Control.Monad.Trans.State.Lazy"
"transformers-0.6.1.2-8201"
'True) (C1 ('MetaCons"StateT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runStateT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (s -> m (a, s)))))type PrimState (StateT s m) = PrimState mDefined in primitive-0.9.1.0 · Control.Monad.Primitive
Arbitrary precision integers. In contrast with fixed-size integral types such as Int, the Integer type represents the entire infinite range of integers.
Integers are stored in a kind of sign-magnitude form, hence do not expect two's complement form when using bit operations.
If the value is small (i.e., fits into an Int), the IS constructor is used. Otherwise IP and IN constructors are used to store a BigNat representing the positive or the negative value magnitude, respectively.
Invariant: IP and IN are used iff the value does not fit in IS.
Instances33Enum, Eq, Integral, Data, Num, Ord, …
Enum IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEq IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.IntegerIntegral IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.RealData IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.NumOrd IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.IntegerRead IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.RealShow IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.IxBits IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsPrintfArg IntegerDefined in base-4.22.0.0 · Text.PrintfNFData IntegerDefined in deepseq-1.5.1.0 · Control.DeepSeqPretty IntegerDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty IntegerDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary IntegerDefined in binary-0.8.9.3 · Data.Binary.ClassDayPeriod YearDefined in time-1.15 · Data.Time.Calendar.Gregorian · orphanShowPadded IntegerDefined in time-1.15 · Data.Time.Calendar.PrivateRandom IntegerDefined in random-1.3.1 · System.RandomUniformRange IntegerDefined in random-1.3.1 · System.Random.InternalArbitrary IntegerDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary IntegerDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction IntegerDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable IntegerDefined in hashable-1.5.1.0 · Data.Hashable.ClassShowPadded IntegerDefined in time-compat-1.9.9 · Data.Time.Calendar.PrivateFromJSON IntegerDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONThis instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.
FromJSONKey IntegerDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON IntegerDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey IntegerDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable IntegerDefined in formatting-7.2.0 · Formatting.BuildableLift IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftReportSchemaErrors m => FromJSON m IntegerDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMonad m => ToJSON m IntegerDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphan
Natural number
Invariant: numbers <= 0xffffffffffffffff use the NS constructor
Instances29Enum, Eq, Integral, Data, Num, Ord, …
Enum NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEq NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.NaturalIntegral NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.RealData NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.NumOrd NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.NaturalRead NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.RealShow NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.IxBits NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsPrintfArg NaturalDefined in base-4.22.0.0 · Text.PrintfNFData NaturalDefined in deepseq-1.5.1.0 · Control.DeepSeqBinary NaturalDefined in binary-0.8.9.3 · Data.Binary.ClassUniformRange NaturalDefined in random-1.3.1 · System.Random.InternalArbitrary NaturalDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary NaturalDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction NaturalDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable NaturalDefined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON NaturalDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey NaturalDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON NaturalDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey NaturalDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONLift NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftTestCoercion SNatDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsTestEquality SNatDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsMonadError SchemaError m => FromJSON m NaturalDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphanMonad m => ToJSON m NaturalDefined in cardano-prelude-0.2.2.0 · Cardano.Prelude.Json.Canonical · orphantype Compare a b = CmpNat a bDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Ord
The Maybe type encapsulates an optional value. A value of type
Maybe a either contains a value of type a (represented as Just a),
or it is empty (represented as Nothing). Using Maybe is a good way to
deal with errors or exceptional cases without resorting to drastic
measures such as error.
The Maybe type is also a monad. It is a simple kind of error monad, where all errors are represented by Nothing. A richer error monad can be built using the Either type.
Instances76Monad, Functor, MonadFix, MonadFail, Applicative, Foldable, …
Monad MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseFunctor MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadFix MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FixMonadFail MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.FailApplicative MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseFoldable MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableAlternative MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadPlus MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseMonadZip MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.Control.Monad.ZipEq1 MaybeDefined in base-4.22.0.0 · Data.Functor.ClassesOrd1 MaybeDefined in base-4.22.0.0 · Data.Functor.ClassesRead1 MaybeDefined in base-4.22.0.0 · Data.Functor.ClassesShow1 MaybeDefined in base-4.22.0.0 · Data.Functor.ClassesNFData1 MaybeDefined in deepseq-1.5.1.0 · Control.DeepSeqMonadThrow MaybeDefined in exceptions-0.10.11 · Control.Monad.CatchArbitrary1 MaybeDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryHashable1 MaybeDefined in hashable-1.5.1.0 · Data.Hashable.ClassAlt MaybeDefined in semigroupoids-6.0.2 · Data.Functor.AltApply MaybeDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassBind MaybeDefined in semigroupoids-6.0.2 · Data.Functor.Bind.ClassExtend MaybeDefined in semigroupoids-6.0.2 · Data.Functor.ExtendPlus MaybeDefined in semigroupoids-6.0.2 · Data.Functor.PlusAlign MaybeDefined in semialign-1.4 · Data.Semialign.InternalSemialign MaybeDefined in semialign-1.4 · Data.Semialign.InternalUnalign MaybeDefined in semialign-1.4 · Data.Semialign.InternalCrosswalk MaybeDefined in semialign-1.4 · Data.CrosswalkRepeat MaybeDefined in semialign-1.4 · Data.Semialign.InternalUnzip MaybeDefined in semialign-1.4 · Data.Semialign.InternalZip MaybeDefined in semialign-1.4 · Data.Semialign.InternalFilterable MaybeDefined in witherable-0.5 · WitherableWitherable MaybeDefined in witherable-0.5 · WitherableFromJSON1 MaybeDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON1 MaybeDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONGeneric1 MaybeDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsMonadError () MaybeDefined in mtl-2.3.1 · Control.Monad.Error.ClassFoldableWithIndex () MaybeDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex () MaybeDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex () MaybeDefined in indexed-traversable-0.1.5 · WithIndexRepeatWithIndex () MaybeDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex () MaybeDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex () MaybeDefined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex () MaybeDefined in witherable-0.5 · WitherableWitherableWithIndex () MaybeDefined in witherable-0.5 · WitherableLift a => Lift (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftEq a => Eq (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.MaybeData a => Data (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd a => Ord (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.MaybeRead a => Read (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ReadShow a => Show (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ShowGeneric (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseSemigroup a => Monoid (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseLift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup
Smay be turned into a monoid simply by adjoining an elementenot inSand defininge*e = eande*s = s = s*efor alls ∈ S."Since 4.11.0: constraint on inner
avalue generalised from Monoid to Semigroup.SingKind a => SingKind (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsNFData a => NFData (Maybe a)Defined in deepseq-1.5.1.0 · Control.DeepSeqPretty a => Pretty (Maybe a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty a => Pretty (Maybe a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary a => Binary (Maybe a)Defined in binary-0.8.9.3 · Data.Binary.ClassFinite a => Finite (Maybe a)Defined in random-1.3.1 · System.Random.GFinite(Finite a, Uniform a) => Uniform (Maybe a)Defined in random-1.3.1 · System.Random.InternalArbitrary a => Arbitrary (Maybe a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary a => CoArbitrary (Maybe a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction a => Function (Maybe a)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionTestable prop => Testable (Maybe prop)Defined in QuickCheck-2.18.0.0 · Test.QuickCheck.PropertyHashable a => Hashable (Maybe a)Defined in hashable-1.5.1.0 · Data.Hashable.ClassFromJSON a => FromJSON (Maybe a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON a => ToJSON (Maybe a)Defined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable a => Buildable (Maybe a)Defined in formatting-7.2.0 · Formatting.BuildableSingI 'NothingDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsStrict (Maybe a) (Maybe a)Defined in strict-0.5.1 · Data.Strict.ClassesEach (Maybe a) (Maybe b) a bDefined in microlens-0.4.14.0 · Lens.Micro.InternalSingI a2 => SingI ('Just a2)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (Maybe a) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Maybe = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))type DemoteRep (Maybe a) = Maybe (DemoteRep a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericsdata SingDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics
Comparison of type-level naturals, as a function.
Instances45Bounded, Enum, Eq, Data, Ord, Read, …
Bounded BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEq BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesData BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesRead BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadShow BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.IxGeneric BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsBits BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsInterpret Bool as 1-bit bit-field
FiniteBits BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsStorable BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorableSingKind BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsNFData BoolDefined in deepseq-1.5.1.0 · Control.DeepSeqPretty BoolDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty BoolDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary BoolDefined in binary-0.8.9.3 · Data.Binary.ClassRandom BoolDefined in random-1.3.1 · System.RandomFinite BoolDefined in random-1.3.1 · System.Random.GFiniteUniform BoolDefined in random-1.3.1 · System.Random.InternalUniformRange BoolDefined in random-1.3.1 · System.Random.InternalArbitrary BoolDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary BoolDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction BoolDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionTestable BoolDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.PropertyHashable BoolDefined in hashable-1.5.1.0 · Data.Hashable.ClassUnbox BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON BoolDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey BoolDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON BoolDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey BoolDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable BoolDefined in formatting-7.2.0 · Formatting.BuildableLift BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftSingI 'FalseDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsSingI 'TrueDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsIArray UArray BoolDefined in array-0.5.8.0 · Data.Array.BaseMVector MVector BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Bool IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMArray (STUArray s) Bool (ST s)Defined in array-0.5.8.0 · Data.Array.Basetype Rep Bool = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"Bool"
"GHC.Internal.Types"
"ghc-internal"
'False) (C1 ('MetaCons"False"
'PrefixI 'False) U1 :+: C1 ('MetaCons"True"
'PrefixI 'False) U1)type DemoteRep Bool = BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Genericsdata SingDefined in ghc-internal-9.1401.0 · GHC.Internal.Genericsdata MVector s BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector BoolDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
The character type Char represents Unicode codespace and its elements are code points as in definitions D9 and D10 of the Unicode Standard.
Character literals in Haskell are single-quoted: 'Q', 'Я' or 'Ω'.
To represent a single quote itself use '\'', and to represent a backslash
use '\\'. The full grammar can be found in the section 2.6 of the
Haskell 2010 Language Report.
To specify a character by its code point one can use decimal, hexadecimal
or octal notation: '\65', '\x41' and '\o101' are all alternative forms
of 'A'. The largest code point is '\x10ffff'.
There is a special escape syntax for ASCII control characters:
Escape | Alternatives | Meaning |
|---|---|---|
|
| null character |
|
| start of heading |
|
| start of text |
|
| end of text |
|
| end of transmission |
|
| enquiry |
|
| acknowledge |
|
,
| bell (alert) |
|
,
| backspace |
|
,
| horizontal tab |
|
,
| line feed (new line) |
|
,
| vertical tab |
|
,
| form feed |
|
,
| carriage return |
|
| shift out |
|
| shift in |
|
| data link escape |
|
| device control 1 |
|
| device control 2 |
|
| device control 3 |
|
| device control 4 |
|
| negative acknowledge |
|
| synchronous idle |
|
| end of transmission block |
|
| cancel |
|
| end of medium |
|
| substitute |
|
| escape |
|
| file separator |
|
| group separator |
|
| record separator |
|
| unit separator |
|
,
| space |
|
| delete |
Instances59Bounded, Enum, Data, Read, Ix, Storable, …
Bounded CharDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum CharDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEq CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesData CharDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataOrd CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesRead CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadShow CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx CharDefined in ghc-internal-9.1401.0 · GHC.Internal.IxStorable CharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorableIsChar CharDefined in base-4.22.0.0 · Text.PrintfPrintfArg CharDefined in base-4.22.0.0 · Text.PrintfNFData CharDefined in deepseq-1.5.1.0 · Control.DeepSeqPretty CharDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty CharDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary CharDefined in binary-0.8.9.3 · Data.Binary.ClassRandom CharDefined in random-1.3.1 · System.RandomFinite CharDefined in random-1.3.1 · System.Random.GFiniteUniform CharDefined in random-1.3.1 · System.Random.InternalUniformRange CharDefined in random-1.3.1 · System.Random.InternalArbitrary CharDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary CharDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction CharDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable CharDefined in hashable-1.5.1.0 · Data.Hashable.ClassPrim CharDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON CharDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey CharDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON CharDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey CharDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable CharDefined in formatting-7.2.0 · Formatting.BuildableLift CharDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftTestCoercion SCharDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsTestEquality SCharDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsIArray UArray CharDefined in array-0.5.8.0 · Data.Array.BaseMVector MVector CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Char IODefined in array-0.5.8.0 · Data.Array.IO.InternalsMonad m => Stream ByteString m CharDefined in parsec-3.1.18.0 · Text.Parsec.PrimMonad m => Stream ByteString m CharDefined in parsec-3.1.18.0 · Text.Parsec.PrimMonad m => Stream Text m CharDefined in parsec-3.1.18.0 · Text.Parsec.PrimMonad m => Stream Text m CharDefined in parsec-3.1.18.0 · Text.Parsec.PrimGeneric1 (URec Char)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable UCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable UCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableBuildable [Char]Defined in formatting-7.2.0 · Formatting.BuildableFromBuilder [Char]Defined in formatting-7.2.0 · Formatting.FromBuilderPrint [Char]Defined in cardano-prelude-0.2.2.0 · Cardano.Prelude.ShowMArray (STUArray s) Char (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Char)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (URec Char p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"uChar#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UChar))type Rep1 (URec Char) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UChar"
'PrefixI 'True) (S1 ('MetaSel ('Just"uChar#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UChar))data URec CharDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Char#
type Compare a b = CmpChar a bDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Orddata MVector s CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector CharDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
Double-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE double-precision type.
Instances55Enum, Floating, Fractional, Data, Num, Read, …
Enum DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanfromEnum just truncates its argument, beware of all sorts of overflows.
List generators have extremely peculiar behavior, mandated by Haskell Report 2010:
Example1 expression [0..1.5][0.0,1.0,2.0]
Eq DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesFloating DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.FloatFractional DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.
Example4 expressions 0 == (-0 :: Double)Truerecip 0 == recip (-0 :: Double)Falsemap (/ 0) [-1, 0, 1][-Infinity,NaN,Infinity]map (* 0) $ map (/ 0) [-1, 0, 1][NaN,NaN,NaN]
Data DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero. Neither addition nor multiplication are associative or distributive:
Example3 expressions (0.1 + 0.1) + 0.4 == 0.1 + (0.1 + 0.4)False(0.1 + 0.2) * 0.3 == 0.1 * 0.3 + 0.2 * 0.3False(0.1 * 0.1) * 0.3 == 0.1 * (0.1 * 0.3)False
Ord DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesIEEE 754 Double-precision type includes not only numbers, but also positive and negative infinities and a special element called
NaN(which can be quiet or signal).IEEE 754-2008, section 5.11 requires that if at least one of arguments of <=, <, >, >= is
NaNthen the result of the comparison is False, andinstanceOrd Double complies with this requirement. This violates the reflexivity: bothNaN<=NaNandNaN>=NaNare False.IEEE 754-2008, section 5.10 defines
totalOrderpredicate. Unfortunately, compare on Doubles violates the IEEE standard and does not define a total order. More specifically, both compareNaNxand comparexNaNalways return GT.Thus, users must be extremely cautious when using
instanceOrd Double. For instance, one should avoid ordered containers with keys represented by Double, because data loss and corruption may happen. An IEEE-compliant compare is available infp-ieeepackage asTotallyOrderednewtype.Moving further, the behaviour of min and max with regards to
NaNis also non-compliant. IEEE 754-2008, section 5.3.1 defines that quietNaNshould be treated as a missing data byminNumandmaxNumfunctions, for example,minNum(NaN, 1) = minNum(1, NaN) = 1. Some languages such as Java deviate from the standard implementingminNum(NaN, 1) = minNum(1, NaN) = NaN. However, min / max inbaseare even worse: minNaN1 is 1, but min 1NaNisNaN.IEEE 754-2008 compliant min / max can be found in
ieee754package underminNum/maxNumnames. Implementations compliant withminimumNumber/maximumNumberfrom a newer IEEE 754-2019, section 9.6 are available fromfp-ieeepackage.Read DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that toRational generates garbage for non-finite arguments:
Example2 expressions toRational (1/0)179769313 (and 300 more digits...) % 1toRational (0/0)269653970 (and 300 more digits...) % 1
RealFloat DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.FloatRealFrac DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that results for non-finite arguments are garbage:
Example2 expressions [ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0] ] :: [Int][0,0,0,0,0,0,0,0,0]map properFraction [-1/0, 0/0, 1/0] :: [(Int, Double)][(0,0.0),(0,0.0),(0,0.0)]
and get even more non-sensical if you ask for Integer instead of Int.
Show DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanStorable DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg DoubleDefined in base-4.22.0.0 · Text.PrintfNFData DoubleDefined in deepseq-1.5.1.0 · Control.DeepSeqPretty DoubleDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty DoubleDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary DoubleDefined in binary-0.8.9.3 · Data.Binary.ClassUses non-IEEE754 encoding. Does not round-trip NaN.
Random DoubleDefined in random-1.3.1 · System.RandomNote - random produces values in the closed range
[0,1].UniformRange DoubleDefined in random-1.3.1 · System.Random.InternalArbitrary DoubleDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary DoubleDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction DoubleDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable DoubleDefined in hashable-1.5.1.0 · Data.Hashable.ClassNote: prior to
hashable-1.3.0.0,hash 0.0 /= hash (-0.0)The hash of NaN is not well defined.
Prim DoubleDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON DoubleDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey DoubleDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON DoubleDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey DoubleDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable DoubleDefined in formatting-7.2.0 · Formatting.BuildableLift DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray DoubleDefined in array-0.5.8.0 · Data.Array.BaseMVector MVector DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseConvertable Double BuilderDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Double ByteStringDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Double TextDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Double BuilderDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableMArray IOUArray Double IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Double)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable UDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable UDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMArray (STUArray s) Double (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Double)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (URec Double p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UDouble"
'PrefixI 'True) (S1 ('MetaSel ('Just"uDouble#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UDouble))type Rep1 (URec Double) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UDouble"
'PrefixI 'True) (S1 ('MetaSel ('Just"uDouble#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UDouble))data URec DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Double#
data MVector s DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector DoubleDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ForeignFloating Double = CDoubleDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.Internal.FFI
Single-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE single-precision type.
Instances55Enum, Floating, Fractional, Data, Num, Read, …
Enum FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanfromEnum just truncates its argument, beware of all sorts of overflows.
List generators have extremely peculiar behavior, mandated by Haskell Report 2010:
Example1 expression [0..1.5 :: Float][0.0,1.0,2.0]
Eq FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesFloating FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.FloatFractional FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.
Example4 expressions 0 == (-0 :: Float)Truerecip 0 == recip (-0 :: Float)Falsemap (/ 0) [-1, 0, 1 :: Float][-Infinity,NaN,Infinity]map (* 0) $ map (/ 0) [-1, 0, 1 :: Float][NaN,NaN,NaN]
Data FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanThis instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero. Neither addition nor multiplication are associative or distributive:
Example3 expressions (0.1 + 0.1 :: Float) + 0.5 == 0.1 + (0.1 + 0.5)False(0.1 + 0.2 :: Float) * 0.9 == 0.1 * 0.9 + 0.2 * 0.9False(0.1 * 0.1 :: Float) * 0.9 == 0.1 * (0.1 * 0.9)False
Ord FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesRead FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that toRational generates garbage for non-finite arguments:
Example2 expressions toRational (1/0 :: Float)340282366920938463463374607431768211456 % 1toRational (0/0 :: Float)510423550381407695195061911147652317184 % 1
RealFloat FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.FloatRealFrac FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanBeware that results for non-finite arguments are garbage:
Example2 expressions [ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0 :: Float] ] :: [Int][0,0,0,0,0,0,0,0,0]map properFraction [-1/0, 0/0, 1/0] :: [(Int, Float)][(0,0.0),(0,0.0),(0,0.0)]
and get even more non-sensical if you ask for Integer instead of Int.
Show FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Float · orphanStorable FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg FloatDefined in base-4.22.0.0 · Text.PrintfNFData FloatDefined in deepseq-1.5.1.0 · Control.DeepSeqPretty FloatDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty FloatDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary FloatDefined in binary-0.8.9.3 · Data.Binary.ClassUses non-IEEE754 encoding. Does not round-trip NaN.
Random FloatDefined in random-1.3.1 · System.RandomNote - random produces values in the closed range
[0,1].UniformRange FloatDefined in random-1.3.1 · System.Random.InternalArbitrary FloatDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary FloatDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction FloatDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable FloatDefined in hashable-1.5.1.0 · Data.Hashable.ClassNote: prior to
hashable-1.3.0.0,hash 0.0 /= hash (-0.0)The hash of NaN is not well defined.
Prim FloatDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON FloatDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey FloatDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON FloatDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey FloatDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable FloatDefined in formatting-7.2.0 · Formatting.BuildableLift FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray FloatDefined in array-0.5.8.0 · Data.Array.BaseMVector MVector FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseConvertable Float BuilderDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Float ByteStringDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Float TextDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableConvertable Float BuilderDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.ConvertableMArray IOUArray Float IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Float)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable UFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable UFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMArray (STUArray s) Float (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Float)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (URec Float p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UFloat"
'PrefixI 'True) (S1 ('MetaSel ('Just"uFloat#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UFloat))type Rep1 (URec Float) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UFloat"
'PrefixI 'True) (S1 ('MetaSel ('Just"uFloat#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UFloat))data URec FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Float#
data MVector s FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector FloatDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ForeignFloating Float = CFloatDefined in double-conversion-2.0.5.0 · Data.Double.Conversion.Internal.FFI
A fixed-precision integer type with at least the range [-2^29 .. 2^29-1].
The exact range for a given implementation can be determined by using
Prelude.minBound and Prelude.maxBound from the Prelude.Bounded class.
Instances104Bounded, Enum, Integral, Data, Num, Read, …
Bounded IntDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum IntDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEq IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesIntegral IntDefined in ghc-internal-9.1401.0 · GHC.Internal.RealData IntDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum IntDefined in ghc-internal-9.1401.0 · GHC.Internal.NumOrd IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesRead IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal IntDefined in ghc-internal-9.1401.0 · GHC.Internal.RealShow IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx IntDefined in ghc-internal-9.1401.0 · GHC.Internal.IxBits IntDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsFiniteBits IntDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsStorable IntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg IntDefined in base-4.22.0.0 · Text.PrintfNFData IntDefined in deepseq-1.5.1.0 · Control.DeepSeqPretty IntDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassPretty IntDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassBinary IntDefined in binary-0.8.9.3 · Data.Binary.ClassShowPadded IntDefined in time-1.15 · Data.Time.Calendar.PrivateRandom IntDefined in random-1.3.1 · System.RandomFinite IntDefined in random-1.3.1 · System.Random.GFiniteUniform IntDefined in random-1.3.1 · System.Random.InternalUniformRange IntDefined in random-1.3.1 · System.Random.InternalArbitrary IntDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary IntDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction IntDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable IntDefined in hashable-1.5.1.0 · Data.Hashable.ClassPrim IntDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseShowPadded IntDefined in time-compat-1.9.9 · Data.Time.Calendar.PrivateByteSource IntDefined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.BuilderFromJSON IntDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey IntDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON IntDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey IntDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable IntDefined in formatting-7.2.0 · Formatting.BuildableLift IntDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray IntDefined in array-0.5.8.0 · Data.Array.BaseFoldableWithIndex Int IntMapDefined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Int SeqDefined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Int ZipListDefined in indexed-traversable-0.1.5 · WithIndexFoldableWithIndex Int VectorDefined in indexed-traversable-instances-0.1.2.1 · Data.Functor.WithIndex.Instances · orphanFoldableWithIndex Int []Defined in indexed-traversable-0.1.5 · WithIndexFoldable1WithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Int IntMapDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Int SeqDefined in indexed-traversable-0.1.5 · WithIndexThe position in the Seq is available as the index.
FunctorWithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex Int ZipListDefined in indexed-traversable-0.1.5 · WithIndexSame instance as for
[].FunctorWithIndex Int VectorDefined in indexed-traversable-instances-0.1.2.1 · Data.Functor.WithIndex.Instances · orphanFunctorWithIndex Int []Defined in indexed-traversable-0.1.5 · WithIndexThe position in the list is available as the index.
TraversableWithIndex Int IntMapDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Int SeqDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Int NonEmptyDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Int ZipListDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex Int VectorDefined in indexed-traversable-instances-0.1.2.1 · Data.Functor.WithIndex.Instances · orphanTraversableWithIndex Int []Defined in indexed-traversable-0.1.5 · WithIndexMVector MVector IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseRepeatWithIndex Int NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalRepeatWithIndex Int ZipListDefined in semialign-1.4 · Data.Semialign.InternalRepeatWithIndex Int []Defined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int IntMapDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int SeqDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int ZipListDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int VectorDefined in semialign-1.4 · Data.Semialign.InternalSemialignWithIndex Int []Defined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int IntMapDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int SeqDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int NonEmptyDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int ZipListDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int VectorDefined in semialign-1.4 · Data.Semialign.InternalZipWithIndex Int []Defined in semialign-1.4 · Data.Semialign.InternalFilterableWithIndex Int IntMapDefined in witherable-0.5 · WitherableFilterableWithIndex Int SeqDefined in witherable-0.5 · WitherableFilterableWithIndex Int ZipListDefined in witherable-0.5 · WitherableFilterableWithIndex Int VectorDefined in witherable-0.5 · WitherableFilterableWithIndex Int []Defined in witherable-0.5 · WitherableWitherableWithIndex Int IntMapDefined in witherable-0.5 · WitherableWitherableWithIndex Int SeqDefined in witherable-0.5 · WitherableWitherableWithIndex Int ZipListDefined in witherable-0.5 · WitherableWitherableWithIndex Int VectorDefined in witherable-0.5 · WitherableWitherableWithIndex Int []Defined in witherable-0.5 · WitherableMArray IOUArray Int IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Int)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable UIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable UIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableFoldableWithIndex [Int] TreeDefined in indexed-traversable-0.1.5 · WithIndexFunctorWithIndex [Int] TreeDefined in indexed-traversable-0.1.5 · WithIndexTraversableWithIndex [Int] TreeDefined in indexed-traversable-0.1.5 · WithIndexMArray (STUArray s) Int (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Int)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (URec Int p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UInt"
'PrefixI 'True) (S1 ('MetaSel ('Just"uInt#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))type Rep1 (URec Int) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UInt"
'PrefixI 'True) (S1 ('MetaSel ('Just"uInt#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UInt))data URec IntDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Int#
data MVector s IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector IntDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basetype ByteSink Int g = Takes4Bytes gDefined in uuid-types-1.0.6.1 · Data.UUID.Types.Internal.Builder
(Kind) This is the kind of type-level symbols.
Instances8SingKind, TestCoercion, TestEquality, SingI, IsRecord, Compare, …
SingKind SymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsTestCoercion SSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsTestEquality SSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsKnownSymbol a => SingI aDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsIsRecord (M1 S ('MetaSel 'Nothing u ss ds) f) FalseDefined in aeson-2.2.5.1 · Data.Aeson.Types.Generictype Compare a b = CmpSymbol a bDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.Ordtype DemoteRep Symbol = StringDefined in ghc-internal-9.1401.0 · GHC.Internal.Genericsdata SingSSym :: KnownSymbol s => R:SingSymbols s
The kind of types with lifted values. For example Int :: Type.
Instances51Bounded, Enum, Integral, Data, Num, Read, …
Bounded WordDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEnum WordDefined in ghc-internal-9.1401.0 · GHC.Internal.EnumEq WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesIntegral WordDefined in ghc-internal-9.1401.0 · GHC.Internal.RealData WordDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.DataNum WordDefined in ghc-internal-9.1401.0 · GHC.Internal.NumOrd WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesRead WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ReadReal WordDefined in ghc-internal-9.1401.0 · GHC.Internal.RealShow WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ShowIx WordDefined in ghc-internal-9.1401.0 · GHC.Internal.IxBits WordDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsFiniteBits WordDefined in ghc-internal-9.1401.0 · GHC.Internal.BitsStorable WordDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.StorablePrintfArg WordDefined in base-4.22.0.0 · Text.PrintfNFData WordDefined in deepseq-1.5.1.0 · Control.DeepSeqBinary WordDefined in binary-0.8.9.3 · Data.Binary.ClassRandom WordDefined in random-1.3.1 · System.RandomFinite WordDefined in random-1.3.1 · System.Random.GFiniteUniform WordDefined in random-1.3.1 · System.Random.InternalUniformRange WordDefined in random-1.3.1 · System.Random.InternalArbitrary WordDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryCoArbitrary WordDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.ArbitraryFunction WordDefined in QuickCheck-2.18.0.0 · Test.QuickCheck.FunctionHashable WordDefined in hashable-1.5.1.0 · Data.Hashable.ClassPrim WordDefined in primitive-0.9.1.0 · Data.Primitive.TypesUnbox WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseFromJSON WordDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONFromJSONKey WordDefined in aeson-2.2.5.1 · Data.Aeson.Types.FromJSONToJSON WordDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONToJSONKey WordDefined in aeson-2.2.5.1 · Data.Aeson.Types.ToJSONBuildable WordDefined in formatting-7.2.0 · Formatting.BuildableLift WordDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.LiftIArray UArray WordDefined in array-0.5.8.0 · Data.Array.BaseMVector MVector WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseVector Vector WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.BaseMArray IOUArray Word IODefined in array-0.5.8.0 · Data.Array.IO.InternalsGeneric1 (URec Word)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsFoldable UWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.FoldableTraversable UWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.TraversableMArray (STUArray s) Word (ST s)Defined in array-0.5.8.0 · Data.Array.BaseFunctor (URec Word)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsEq (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsShow (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsGeneric (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Genericstype Rep (URec Word p) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UWord"
'PrefixI 'True) (S1 ('MetaSel ('Just"uWord#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UWord))type Rep1 (URec Word) = D1 ('MetaDataDefined in ghc-internal-9.1401.0 · GHC.Internal.Generics"URec"
"GHC.Internal.Generics"
"ghc-internal"
'False) (C1 ('MetaCons"UWord"
'PrefixI 'True) (S1 ('MetaSel ('Just"uWord#"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) UWord))data URec WordDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsUsed for marking occurrences of Word#
data MVector s WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Basedata Vector WordDefined in vector-0.13.2.0 · Data.Vector.Unboxed.Base
Lifted, homogeneous equality. By lifted, we mean that it
can be bogus (deferred type error). By homogeneous, the two
types a and b must have the same kinds.