git-phoenix
Safe HaskellNone
LanguageGHC2024

Data.Git.Phoenix.Prelude

Synopsis

Documentation

module Relude

sourceDirectoryDeep #

Arguments

:: forall (m :: Type -> Type) i. MonadResource m 
=> Bool

Follow directory symlinks

-> FilePath

Root directory

-> ConduitT i FilePath m () 

Deeply stream the contents of the given directory.

This works the same as sourceDirectory, but will not return directories at all. This function also takes an extra parameter to indicate whether symlinks will be followed.

Since: conduit-1.3.0

concatC :: forall (m :: Type -> Type) mono. (Monad m, MonoFoldable mono) => ConduitT mono (Element mono) m () #

Flatten out a stream by yielding the values contained in an incoming MonoFoldable as individually yielded values.

Since: conduit-1.3.0

foldMC :: Monad m => (a -> b -> m a) -> a -> ConduitT b o m a #

A monadic strict left fold.

Since: conduit-1.3.0

mapMC :: Monad m => (a -> m b) -> ConduitT a b m () #

Apply a monadic transformation to all values in a stream.

If you do not need the transformed values, and instead just want the monadic side-effects of running the action, see mapM_.

Since: conduit-1.3.0

(.|) infixr 2 #

Arguments

:: forall (m :: Type -> Type) a b c r. Monad m 
=> ConduitT a b m ()

upstream

-> ConduitT b c m r

downstream

-> ConduitT a c m r 

Combine two Conduits together into a new Conduit (aka fuse).

Output from the upstream (left) conduit will be fed into the downstream (right) conduit. Processing will terminate when downstream (right) returns. Leftover data returned from the right Conduit will be discarded.

Equivalent to fuse and =$=, however the latter is deprecated and will be removed in a future version.

Note that, while this operator looks like categorical composition (from Control.Category), there are a few reasons it's different:

  • The position of the type parameters to ConduitT do not match. We would need to change ConduitT i o m r to ConduitT r m i o, which would preclude a Monad or MonadTrans instance.
  • The result value from upstream and downstream are allowed to differ between upstream and downstream. In other words, we would need the type signature here to look like ConduitT a b m r -> ConduitT b c m r -> ConduitT a c m r.
  • Due to leftovers, we do not have a left identity in Conduit. This can be achieved with the underlying Pipe datatype, but this is not generally recommended. See https://stackoverflow.com/a/15263700.

Since: conduit-1.2.8

runConduitRes :: MonadUnliftIO m => ConduitT () Void (ResourceT m) r -> m r #

Run a pipeline which acquires resources with ResourceT, and then run the ResourceT transformer. This is equivalent to runResourceT . runConduit.

Since: conduit-1.2.8

(</>) :: FilePath -> FilePath -> FilePath infixr 5 #

Combine two paths with a path separator. If the second path starts with a path separator or a drive letter, then it returns the second. The intention is that readFile (dir </> file) will access the same file as setCurrentDirectory dir; readFile file.

Posix:   "/directory" </> "file.ext" == "/directory/file.ext"
Windows: "/directory" </> "file.ext" == "/directory\\file.ext"
         "directory" </> "/file.ext" == "/file.ext"
Valid x => (takeDirectory x </> takeFileName x) `equalFilePath` x

Combined:

Posix:   "/" </> "test" == "/test"
Posix:   "home" </> "bob" == "home/bob"
Posix:   "x:" </> "foo" == "x:/foo"
Windows: "C:\\foo" </> "bar" == "C:\\foo\\bar"
Windows: "home" </> "bob" == "home\\bob"

Not combined:

Posix:   "home" </> "/bob" == "/bob"
Windows: "home" </> "C:\\bob" == "C:\\bob"

Not combined (tricky):

On Windows, if a filepath starts with a single slash, it is relative to the root of the current drive. In [1], this is (confusingly) referred to as an absolute path. The current behavior of </> is to never combine these forms.

Windows: "home" </> "/bob" == "/bob"
Windows: "home" </> "\\bob" == "\\bob"
Windows: "C:\\home" </> "\\bob" == "\\bob"

On Windows, from [1]: "If a file name begins with only a disk designator but not the backslash after the colon, it is interpreted as a relative path to the current directory on the drive with the specified letter." The current behavior of </> is to never combine these forms.

Windows: "D:\\foo" </> "C:bar" == "C:bar"
Windows: "C:\\foo" </> "C:bar" == "C:bar"

dropFileName :: FilePath -> FilePath #

Drop the filename. Unlike takeDirectory, this function will leave a trailing path separator on the directory.

dropFileName "/directory/file.ext" == "/directory/"
dropFileName x == fst (splitFileName x)
isPrefixOf (takeDrive x) (dropFileName x)

makeRelative :: FilePath -> FilePath -> FilePath #

Contract a filename, based on a relative path. Note that the resulting path will never introduce .. paths, as the presence of symlinks means ../b may not reach a/b if it starts from a/c. For a worked example see this blog post.

The corresponding makeAbsolute function can be found in System.Directory.

         makeRelative "/directory" "/directory/file.ext" == "file.ext"
         Valid x => makeRelative (takeDirectory x) x `equalFilePath` takeFileName x
         makeRelative x x == "."
         Valid x y => equalFilePath x y || (isRelative x && makeRelative y x == x) || equalFilePath (y </> makeRelative y x) x
Windows: makeRelative "C:\\Home" "c:\\home\\bob" == "bob"
Windows: makeRelative "C:\\Home" "c:/home/bob" == "bob"
Windows: makeRelative "C:\\Home" "D:\\Home\\Bob" == "D:\\Home\\Bob"
Windows: makeRelative "C:\\Home" "C:Home\\Bob" == "C:Home\\Bob"
Windows: makeRelative "/Home" "/home/bob" == "bob"
Windows: makeRelative "/" "//" == "//"
Posix:   makeRelative "/Home" "/home/bob" == "/home/bob"
Posix:   makeRelative "/home/" "/home/bob/foo/bar" == "bob/foo/bar"
Posix:   makeRelative "/fred" "bob" == "bob"
Posix:   makeRelative "/file/test" "/file/test/fred" == "fred"
Posix:   makeRelative "/file/test" "/file/test/fred/" == "fred/"
Posix:   makeRelative "some/path" "some/path/a/b/c" == "a/b/c"

splitFileName :: FilePath -> (String, String) #

Split a filename into directory and file. </> is the inverse. The first component will often end with a trailing slash.

splitFileName "/directory/file.ext" == ("/directory/","file.ext")
Valid x => uncurry (</>) (splitFileName x) == x || fst (splitFileName x) == "./"
Valid x => isValid (fst (splitFileName x))
splitFileName "file/bob.txt" == ("file/", "bob.txt")
splitFileName "file/" == ("file/", "")
splitFileName "bob" == ("./", "bob")
Posix:   splitFileName "/" == ("/","")
Windows: splitFileName "c:" == ("c:","")
Windows: splitFileName "\\\\?\\A:\\fred" == ("\\\\?\\A:\\","fred")
Windows: splitFileName "\\\\?\\A:" == ("\\\\?\\A:","")

getNumCapabilities :: IO Int #

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.

Since: base-4.4.0.0

(!?) :: [a] -> Int -> Maybe a infixl 9 #

List index (subscript) operator, starting from 0. Returns Nothing if the index is out of bounds

This is the total variant of the partial !! operator.

WARNING: This function takes linear time in the index.

Examples

Expand
>>> ['a', 'b', 'c'] !? 0
Just 'a'
>>> ['a', 'b', 'c'] !? 2
Just 'c'
>>> ['a', 'b', 'c'] !? 3
Nothing
>>> ['a', 'b', 'c'] !? (-1)
Nothing

untag :: forall {k} (s :: k) b. Tagged s b -> b #

Alias for unTagged

s_ :: Q Pat #

Similar to a, but argument is not included in trace message.

tg :: Q Exp #

Expands to $(tr "/a b c d...") False

tg' :: String -> Q Exp #

Similar to tg with message prefix with the argument.

tr :: String -> Q Exp #

TH version of trace and traceEvent The message is formatted according to TraceMessageFormat. The generated expression has type forall r (a :: TYPE r) b a. Rewrap a b => a -> a. id is generated if effective trace level is lower than trace level threshold. Example:

foo x = $(tr "get/x") x

Output:

Module::foo get; x : 132

trFunMarker :: Q Exp #

TH version of traceMarker where module and function are used as a marker. Trace level is used.

trIo :: String -> Q Exp #

TH version of traceIO and traceEventIO The message is formatted according to TraceMessageFormat. Example:

foo x = $(trIo "get/x") >> pure x

Output:

Module::foo get; x : 132

trIoFunMarker :: Q Exp #

TH version of traceMarkerIO where module and function are used as a marker. Trace level is not used.

tw :: String -> Q Exp #

TH version of traceWith and traceEventWith The message is formatted according to TraceMessageFormat. The generated expression has type forall r (a :: TYPE r) b a. (Show a, Rewrap a b) => a -> a. id is generated if effective trace level is lower than trace level threshold. Example:

foo x = $(tw "get/x") (x + 1)

Output:

Module::foo get; x : 132 => 133

tw' :: String -> Q Exp #

Like tw but return value is wrapped with ShowTrace.

u :: Q Exp #

Shortcut for undefined

underbar :: Undebar #

copyFile :: MonadIO m => FilePath -> FilePath -> m () #

Lifted copyFile.

Since: unliftio-0.2.6.0

createDirectory :: MonadIO m => FilePath -> m () #

Lifted createDirectory.

Since: unliftio-0.2.6.0

createDirectoryIfMissing :: MonadIO m => Bool -> FilePath -> m () #

Lifted createDirectoryIfMissing.

Since: unliftio-0.2.6.0

createFileLink #

Arguments

:: MonadIO m 
=> FilePath

path to the target file

-> FilePath

path of the link to be created

-> m () 

Lifted createFileLink. directory package version should be >= 1.3.1. @since 0.2.16.0

doesDirectoryExist :: MonadIO m => FilePath -> m Bool #

Lifted doesDirectoryExist.

Since: unliftio-0.2.6.0

doesFileExist :: MonadIO m => FilePath -> m Bool #

Lifted doesFileExist.

Since: unliftio-0.2.6.0

getSymbolicLinkTarget :: MonadIO m => FilePath -> m FilePath #

Lifted getSymbolicLinkTarget.

Since: unliftio-0.2.21.0

listDirectory :: MonadIO m => FilePath -> m [FilePath] #

Lifted listDirectory.

Since: unliftio-0.2.6.0

makeAbsolute :: MonadIO m => FilePath -> m FilePath #

Lifted makeAbsolute.

Since: unliftio-0.2.6.0

pathIsSymbolicLink :: MonadIO m => FilePath -> m Bool #

Lifted pathIsSymbolicLink.

Since: unliftio-0.2.6.0

removeFile :: MonadIO m => FilePath -> m () #

Lifted removeFile.

Since: unliftio-0.2.6.0

bracket :: MonadUnliftIO m => m a -> (a -> m b) -> (a -> m c) -> m c #

Allocate and clean up a resource safely.

For more information on motivation and usage of this function, see base's bracket. This function has two differences from the one in base. The first, and more obvious, is that it works on any MonadUnliftIO instance, not just IO.

The more subtle difference is that this function will use uninterruptible masking for its cleanup handler. This is a subtle distinction, but at a high level, means that resource cleanup has more guarantees to complete. This comes at the cost that an incorrectly written cleanup function cannot be interrupted.

For more information, please see https://github.com/fpco/safe-exceptions/issues/3.

Since: unliftio-0.1.0.0

bracket_ :: MonadUnliftIO m => m a -> m b -> m c -> m c #

Same as bracket, but does not pass the acquired resource to cleanup and use functions.

For more information, see base's bracket_.

Since: unliftio-0.1.0.0

catch #

Arguments

:: (MonadUnliftIO m, Exception e) 
=> m a

action

-> (e -> m a)

handler

-> m a 

Catch a synchronous (but not asynchronous) exception and recover from it.

This is parameterized on the exception type. To catch all synchronous exceptions, use catchAny.

Since: unliftio-0.1.0.0

hClose :: MonadIO m => Handle -> m () #

Lifted version of hClose

Since: unliftio-0.2.1.0

hIsOpen :: MonadIO m => Handle -> m Bool #

Lifted version of hIsOpen

Since: unliftio-0.2.1.0

withBinaryFile :: MonadUnliftIO m => FilePath -> IOMode -> (Handle -> m a) -> m a #

Unlifted version of withBinaryFile.

Since: unliftio-0.1.0.0

newQSem :: MonadIO m => Int -> m QSem #

Lifted newQSem.

Since: unliftio-0.2.14

signalQSem :: MonadIO m => QSem -> m () #

Lifted signalQSem.

Since: unliftio-0.2.14

waitQSem :: MonadIO m => QSem -> m () #

Lifted waitQSem.

Since: unliftio-0.2.14

compress :: ByteString -> ByteString #

Compress a stream of data into the zlib format.

This uses the default compression parameters. In particular it uses the default compression level which favours a higher compression ratio over compression speed, though it does not use the maximum compression level.

Use compressWith to adjust the compression level or other compression parameters.

compressWith :: CompressParams -> ByteString -> ByteString #

Like compress but with the ability to specify various compression parameters. Typical usage:

compressWith defaultCompressParams { ... }

In particular you can set the compression level:

compressWith defaultCompressParams { compressLevel = BestCompression }

decompress :: ByteString -> ByteString #

Decompress a stream of data in the zlib format, throw DecompressError on failure.

Note that the decompression is performed lazily. Errors in the data stream may not be detected until the end of the stream is demanded (since it is only at the end that the final checksum can be checked). If this is important to you, you must make sure to consume the whole decompressed stream before doing any IO action that depends on it.

decompressWith :: DecompressParams -> ByteString -> ByteString #

Like decompress but with the ability to specify various decompression parameters. Typical usage:

decompressWith defaultCompressParams { ... }

defaultCompressParams :: CompressParams #

The default set of parameters for compression. This is typically used with compressWith or compressWith with specific parameters overridden.

defaultDecompressParams :: DecompressParams #

The default set of parameters for decompression. This is typically used with decompressWith or decompressWith with specific parameters overridden.

data QSem #

QSem is a quantity semaphore in which the resource is acquired and released in units of one. It provides guaranteed FIFO ordering for satisfying blocked waitQSem calls.

The pattern

bracket_ waitQSem signalQSem (...)

is safe; it never loses a unit of the resource.

data ConduitT i o (m :: Type -> Type) r #

Core datatype of the conduit package. This type represents a general component which can consume a stream of input values i, produce a stream of output values o, perform actions in the m monad, and produce a final result r. The type synonyms provided here are simply wrappers around this type.

Since 1.3.0

Instances

Instances details
MonadRWS r w s m => MonadRWS r w s (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

MonadError e m => MonadError e (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

throwError :: e -> ConduitT i o m a #

catchError :: ConduitT i o m a -> (e -> ConduitT i o m a) -> ConduitT i o m a #

MonadReader r m => MonadReader r (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

ask :: ConduitT i o m r #

local :: (r -> r) -> ConduitT i o m a -> ConduitT i o m a #

reader :: (r -> a) -> ConduitT i o m a #

MonadState s m => MonadState s (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

get :: ConduitT i o m s #

put :: s -> ConduitT i o m () #

state :: (s -> (a, s)) -> ConduitT i o m a #

MonadWriter w m => MonadWriter w (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

writer :: (a, w) -> ConduitT i o m a #

tell :: w -> ConduitT i o m () #

listen :: ConduitT i o m a -> ConduitT i o m (a, w) #

pass :: ConduitT i o m (a, w -> w) -> ConduitT i o m a #

MonadTrans (ConduitT i o) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

lift :: Monad m => m a -> ConduitT i o m a #

MonadThrow m => MonadThrow (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

throwM :: (HasCallStack, Exception e) => e -> ConduitT i o m a #

Applicative (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

pure :: a -> ConduitT i o m a #

(<*>) :: ConduitT i o m (a -> b) -> ConduitT i o m a -> ConduitT i o m b #

liftA2 :: (a -> b -> c) -> ConduitT i o m a -> ConduitT i o m b -> ConduitT i o m c #

(*>) :: ConduitT i o m a -> ConduitT i o m b -> ConduitT i o m b #

(<*) :: ConduitT i o m a -> ConduitT i o m b -> ConduitT i o m a #

Functor (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

fmap :: (a -> b) -> ConduitT i o m a -> ConduitT i o m b #

(<$) :: a -> ConduitT i o m b -> ConduitT i o m a #

Monad (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

(>>=) :: ConduitT i o m a -> (a -> ConduitT i o m b) -> ConduitT i o m b #

(>>) :: ConduitT i o m a -> ConduitT i o m b -> ConduitT i o m b #

return :: a -> ConduitT i o m a #

MonadFail m => MonadFail (ConduitT i o m) #

Since: conduit-1.3.1

Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

fail :: String -> ConduitT i o m a #

MonadIO m => MonadIO (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

liftIO :: IO a -> ConduitT i o m a #

PrimMonad m => PrimMonad (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Associated Types

type PrimState (ConduitT i o m) 
Instance details

Defined in Data.Conduit.Internal.Conduit

type PrimState (ConduitT i o m) = PrimState m

Methods

primitive :: (State# (PrimState (ConduitT i o m)) -> (# State# (PrimState (ConduitT i o m)), a #)) -> ConduitT i o m a #

MonadResource m => MonadResource (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

liftResourceT :: ResourceT IO a -> ConduitT i o m a #

Monad m => Monoid (ConduitT i o m ()) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

mempty :: ConduitT i o m () #

mappend :: ConduitT i o m () -> ConduitT i o m () -> ConduitT i o m () #

mconcat :: [ConduitT i o m ()] -> ConduitT i o m () #

Monad m => Semigroup (ConduitT i o m ()) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

Methods

(<>) :: ConduitT i o m () -> ConduitT i o m () -> ConduitT i o m () #

sconcat :: NonEmpty (ConduitT i o m ()) -> ConduitT i o m () #

stimes :: Integral b => b -> ConduitT i o m () -> ConduitT i o m () #

type PrimState (ConduitT i o m) # 
Instance details

Defined in Data.Conduit.Internal.Conduit

type PrimState (ConduitT i o m) = PrimState m

data ResourceT (m :: Type -> Type) a #

The Resource transformer. This transformer keeps track of all registered actions, and calls them upon exit (via runResourceT). Actions may be registered via register, or resources may be allocated atomically via allocate. allocate corresponds closely to bracket.

Releasing may be performed before exit via the release function. This is a highly recommended optimization, as it will ensure that scarce resources are freed early. Note that calling release will deregister the action, so that a release action will only ever be called once.

Since 0.3.0

Instances

Instances details
MonadTrans ResourceT # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

lift :: Monad m => m a -> ResourceT m a #

MonadRWS r w s m => MonadRWS r w s (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

MonadError e m => MonadError e (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

throwError :: e -> ResourceT m a #

catchError :: ResourceT m a -> (e -> ResourceT m a) -> ResourceT m a #

MonadReader r m => MonadReader r (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

ask :: ResourceT m r #

local :: (r -> r) -> ResourceT m a -> ResourceT m a #

reader :: (r -> a) -> ResourceT m a #

MonadState s m => MonadState s (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

get :: ResourceT m s #

put :: s -> ResourceT m () #

state :: (s -> (a, s)) -> ResourceT m a #

MonadWriter w m => MonadWriter w (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

writer :: (a, w) -> ResourceT m a #

tell :: w -> ResourceT m () #

listen :: ResourceT m a -> ResourceT m (a, w) #

pass :: ResourceT m (a, w -> w) -> ResourceT m a #

MonadCatch m => MonadCatch (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

catch :: (HasCallStack, Exception e) => ResourceT m a -> (e -> ResourceT m a) -> ResourceT m a #

MonadMask m => MonadMask (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

mask :: HasCallStack => ((forall a. ResourceT m a -> ResourceT m a) -> ResourceT m b) -> ResourceT m b #

uninterruptibleMask :: HasCallStack => ((forall a. ResourceT m a -> ResourceT m a) -> ResourceT m b) -> ResourceT m b #

generalBracket :: HasCallStack => ResourceT m a -> (a -> ExitCase b -> ResourceT m c) -> (a -> ResourceT m b) -> ResourceT m (b, c) #

MonadThrow m => MonadThrow (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

throwM :: (HasCallStack, Exception e) => e -> ResourceT m a #

Alternative m => Alternative (ResourceT m) #

Since 1.1.5

Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

empty :: ResourceT m a #

(<|>) :: ResourceT m a -> ResourceT m a -> ResourceT m a #

some :: ResourceT m a -> ResourceT m [a] #

many :: ResourceT m a -> ResourceT m [a] #

Applicative m => Applicative (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

pure :: a -> ResourceT m a #

(<*>) :: ResourceT m (a -> b) -> ResourceT m a -> ResourceT m b #

liftA2 :: (a -> b -> c) -> ResourceT m a -> ResourceT m b -> ResourceT m c #

(*>) :: ResourceT m a -> ResourceT m b -> ResourceT m b #

(<*) :: ResourceT m a -> ResourceT m b -> ResourceT m a #

Functor m => Functor (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

fmap :: (a -> b) -> ResourceT m a -> ResourceT m b #

(<$) :: a -> ResourceT m b -> ResourceT m a #

Monad m => Monad (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

(>>=) :: ResourceT m a -> (a -> ResourceT m b) -> ResourceT m b #

(>>) :: ResourceT m a -> ResourceT m b -> ResourceT m b #

return :: a -> ResourceT m a #

MonadPlus m => MonadPlus (ResourceT m) #

Since 1.1.5

Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

mzero :: ResourceT m a #

mplus :: ResourceT m a -> ResourceT m a -> ResourceT m a #

MonadFail m => MonadFail (ResourceT m) #

Since: resourcet-1.2.2

Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

fail :: String -> ResourceT m a #

MonadFix m => MonadFix (ResourceT m) #

Since: resourcet-1.1.8

Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

mfix :: (a -> ResourceT m a) -> ResourceT m a #

MonadIO m => MonadIO (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

liftIO :: IO a -> ResourceT m a #

(Monad m, HasInHandlesSem m) => HasInHandlesSem (ResourceT m) Source # 
Instance details

Defined in Data.Git.Phoenix.Io

MonadCont m => MonadCont (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

callCC :: ((a -> ResourceT m b) -> ResourceT m a) -> ResourceT m a #

PrimMonad m => PrimMonad (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Associated Types

type PrimState (ResourceT m) 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

primitive :: (State# (PrimState (ResourceT m)) -> (# State# (PrimState (ResourceT m)), a #)) -> ResourceT m a #

MonadIO m => MonadResource (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

liftResourceT :: ResourceT IO a -> ResourceT m a #

MonadUnliftIO m => MonadUnliftIO (ResourceT m) #

Since: resourcet-1.1.10

Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

withRunInIO :: ((forall a. ResourceT m a -> IO a) -> IO b) -> ResourceT m b #

type PrimState (ResourceT m) # 
Instance details

Defined in Control.Monad.Trans.Resource.Internal

newtype Tagged (s :: k) b #

A Tagged s b value is a value b with an attached phantom type s. This can be used in place of the more traditional but less safe idiom of passing in an undefined value with the type, because unlike an (s -> b), a Tagged s b can't try to use the argument s as a real value.

Moreover, you don't have to rely on the compiler to inline away the extra argument, because the newtype is "free"

Tagged has kind k -> * -> * if the compiler supports PolyKinds, therefore there is an extra k showing in the instance haddocks that may cause confusion.

Constructors

Tagged 

Fields

Instances

Instances details
Generic1 (Tagged s :: Type -> Type) # 
Instance details

Defined in Data.Tagged

Associated Types

type Rep1 (Tagged s :: Type -> Type) 
Instance details

Defined in Data.Tagged

type Rep1 (Tagged s :: Type -> Type) = D1 ('MetaData "Tagged" "Data.Tagged" "tagged-0.8.9-5BSL3lM5Z0fHwQKEKqcMjV" 'True) (C1 ('MetaCons "Tagged" 'PrefixI 'True) (S1 ('MetaSel ('Just "unTagged") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

Methods

from1 :: Tagged s a -> Rep1 (Tagged s) a #

to1 :: Rep1 (Tagged s) a -> Tagged s a #

Bifoldable (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

bifold :: Monoid m => Tagged m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Tagged a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Tagged a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Tagged a b -> c #

Bifoldable1 (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

bifold1 :: Semigroup m => Tagged m m -> m #

bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Tagged a b -> m #

Bifunctor (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

bimap :: (a -> b) -> (c -> d) -> Tagged a c -> Tagged b d #

first :: (a -> b) -> Tagged a c -> Tagged b c #

second :: (b -> c) -> Tagged a b -> Tagged a c #

Bitraversable (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Tagged a b -> f (Tagged c d) #

Eq2 (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Tagged a c -> Tagged b d -> Bool #

Ord2 (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Tagged a c -> Tagged b d -> Ordering #

Read2 (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Tagged a b) #

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Tagged a b] #

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Tagged a b) #

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Tagged a b] #

Show2 (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Tagged

Methods

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Tagged a b -> ShowS #

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Tagged a b] -> ShowS #

Show (ShowTrace a) => Show (ShowTrace (Tagged t a)) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Methods

showsPrec :: Int -> ShowTrace (Tagged t a) -> ShowS #

show :: ShowTrace (Tagged t a) -> String #

showList :: [ShowTrace (Tagged t a)] -> ShowS #

Show (ShowTrace a) => Show (ShowTrace [Tagged t a]) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Methods

showsPrec :: Int -> ShowTrace [Tagged t a] -> ShowS #

show :: ShowTrace [Tagged t a] -> String #

showList :: [ShowTrace [Tagged t a]] -> ShowS #

Corepresentable (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Profunctor.Rep

Associated Types

type Corep (Tagged :: Type -> Type -> Type) 
Instance details

Defined in Data.Profunctor.Rep

type Corep (Tagged :: Type -> Type -> Type) = Proxy :: Type -> Type

Methods

cotabulate :: (Corep (Tagged :: Type -> Type -> Type) d -> c) -> Tagged d c #

Representable (Tagged t) # 
Instance details

Defined in Data.Functor.Rep

Associated Types

type Rep (Tagged t) 
Instance details

Defined in Data.Functor.Rep

type Rep (Tagged t) = ()

Methods

tabulate :: (Rep (Tagged t) -> a) -> Tagged t a #

index :: Tagged t a -> Rep (Tagged t) -> a #

Foldable1 (Tagged a) # 
Instance details

Defined in Data.Tagged

Methods

fold1 :: Semigroup m => Tagged a m -> m #

foldMap1 :: Semigroup m => (a0 -> m) -> Tagged a a0 -> m #

foldMap1' :: Semigroup m => (a0 -> m) -> Tagged a a0 -> m #

toNonEmpty :: Tagged a a0 -> NonEmpty a0 #

maximum :: Ord a0 => Tagged a a0 -> a0 #

minimum :: Ord a0 => Tagged a a0 -> a0 #

head :: Tagged a a0 -> a0 #

last :: Tagged a a0 -> a0 #

foldrMap1 :: (a0 -> b) -> (a0 -> b -> b) -> Tagged a a0 -> b #

foldlMap1' :: (a0 -> b) -> (b -> a0 -> b) -> Tagged a a0 -> b #

foldlMap1 :: (a0 -> b) -> (b -> a0 -> b) -> Tagged a a0 -> b #

foldrMap1' :: (a0 -> b) -> (a0 -> b -> b) -> Tagged a a0 -> b #

Eq1 (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

liftEq :: (a -> b -> Bool) -> Tagged s a -> Tagged s b -> Bool #

Ord1 (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

liftCompare :: (a -> b -> Ordering) -> Tagged s a -> Tagged s b -> Ordering #

Read1 (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Tagged s a) #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Tagged s a] #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Tagged s a) #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Tagged s a] #

Show1 (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Tagged s a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Tagged s a] -> ShowS #

Applicative (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

pure :: a -> Tagged s a #

(<*>) :: Tagged s (a -> b) -> Tagged s a -> Tagged s b #

liftA2 :: (a -> b -> c) -> Tagged s a -> Tagged s b -> Tagged s c #

(*>) :: Tagged s a -> Tagged s b -> Tagged s b #

(<*) :: Tagged s a -> Tagged s b -> Tagged s a #

Functor (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

fmap :: (a -> b) -> Tagged s a -> Tagged s b #

(<$) :: a -> Tagged s b -> Tagged s a #

Monad (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

(>>=) :: Tagged s a -> (a -> Tagged s b) -> Tagged s b #

(>>) :: Tagged s a -> Tagged s b -> Tagged s b #

return :: a -> Tagged s a #

Foldable (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

fold :: Monoid m => Tagged s m -> m #

foldMap :: Monoid m => (a -> m) -> Tagged s a -> m #

foldMap' :: Monoid m => (a -> m) -> Tagged s a -> m #

foldr :: (a -> b -> b) -> b -> Tagged s a -> b #

foldr' :: (a -> b -> b) -> b -> Tagged s a -> b #

foldl :: (b -> a -> b) -> b -> Tagged s a -> b #

foldl' :: (b -> a -> b) -> b -> Tagged s a -> b #

foldr1 :: (a -> a -> a) -> Tagged s a -> a #

foldl1 :: (a -> a -> a) -> Tagged s a -> a #

toList :: Tagged s a -> [a] #

null :: Tagged s a -> Bool #

length :: Tagged s a -> Int #

elem :: Eq a => a -> Tagged s a -> Bool #

maximum :: Ord a => Tagged s a -> a #

minimum :: Ord a => Tagged s a -> a #

sum :: Num a => Tagged s a -> a #

product :: Num a => Tagged s a -> a #

Traversable (Tagged s) # 
Instance details

Defined in Data.Tagged

Methods

traverse :: Applicative f => (a -> f b) -> Tagged s a -> f (Tagged s b) #

sequenceA :: Applicative f => Tagged s (f a) -> f (Tagged s a) #

mapM :: Monad m => (a -> m b) -> Tagged s a -> m (Tagged s b) #

sequence :: Monad m => Tagged s (m a) -> m (Tagged s a) #

NFData b => NFData (Tagged s b) # 
Instance details

Defined in Data.Tagged

Methods

rnf :: Tagged s b -> () #

(Semigroup a, Monoid a) => Monoid (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

mempty :: Tagged s a #

mappend :: Tagged s a -> Tagged s a -> Tagged s a #

mconcat :: [Tagged s a] -> Tagged s a #

Semigroup a => Semigroup (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

(<>) :: Tagged s a -> Tagged s a -> Tagged s a #

sconcat :: NonEmpty (Tagged s a) -> Tagged s a #

stimes :: Integral b => b -> Tagged s a -> Tagged s a #

Bits a => Bits (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

(.&.) :: Tagged s a -> Tagged s a -> Tagged s a #

(.|.) :: Tagged s a -> Tagged s a -> Tagged s a #

xor :: Tagged s a -> Tagged s a -> Tagged s a #

complement :: Tagged s a -> Tagged s a #

shift :: Tagged s a -> Int -> Tagged s a #

rotate :: Tagged s a -> Int -> Tagged s a #

zeroBits :: Tagged s a #

bit :: Int -> Tagged s a #

setBit :: Tagged s a -> Int -> Tagged s a #

clearBit :: Tagged s a -> Int -> Tagged s a #

complementBit :: Tagged s a -> Int -> Tagged s a #

testBit :: Tagged s a -> Int -> Bool #

bitSizeMaybe :: Tagged s a -> Maybe Int #

bitSize :: Tagged s a -> Int #

isSigned :: Tagged s a -> Bool #

shiftL :: Tagged s a -> Int -> Tagged s a #

unsafeShiftL :: Tagged s a -> Int -> Tagged s a #

shiftR :: Tagged s a -> Int -> Tagged s a #

unsafeShiftR :: Tagged s a -> Int -> Tagged s a #

rotateL :: Tagged s a -> Int -> Tagged s a #

rotateR :: Tagged s a -> Int -> Tagged s a #

popCount :: Tagged s a -> Int #

FiniteBits a => FiniteBits (Tagged s a) # 
Instance details

Defined in Data.Tagged

(Data s, Data b) => Data (Tagged s b) # 
Instance details

Defined in Data.Tagged

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Tagged s b -> c (Tagged s b) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Tagged s b) #

toConstr :: Tagged s b -> Constr #

dataTypeOf :: Tagged s b -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Tagged s b)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Tagged s b)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> Tagged s b -> Tagged s b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tagged s b -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tagged s b -> r #

gmapQ :: (forall d. Data d => d -> u) -> Tagged s b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Tagged s b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tagged s b -> m (Tagged s b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tagged s b -> m (Tagged s b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tagged s b -> m (Tagged s b) #

IsString a => IsString (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

fromString :: String -> Tagged s a #

Bounded b => Bounded (Tagged s b) # 
Instance details

Defined in Data.Tagged

Methods

minBound :: Tagged s b #

maxBound :: Tagged s b #

Enum a => Enum (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

succ :: Tagged s a -> Tagged s a #

pred :: Tagged s a -> Tagged s a #

toEnum :: Int -> Tagged s a #

fromEnum :: Tagged s a -> Int #

enumFrom :: Tagged s a -> [Tagged s a] #

enumFromThen :: Tagged s a -> Tagged s a -> [Tagged s a] #

enumFromTo :: Tagged s a -> Tagged s a -> [Tagged s a] #

enumFromThenTo :: Tagged s a -> Tagged s a -> Tagged s a -> [Tagged s a] #

Floating a => Floating (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

pi :: Tagged s a #

exp :: Tagged s a -> Tagged s a #

log :: Tagged s a -> Tagged s a #

sqrt :: Tagged s a -> Tagged s a #

(**) :: Tagged s a -> Tagged s a -> Tagged s a #

logBase :: Tagged s a -> Tagged s a -> Tagged s a #

sin :: Tagged s a -> Tagged s a #

cos :: Tagged s a -> Tagged s a #

tan :: Tagged s a -> Tagged s a #

asin :: Tagged s a -> Tagged s a #

acos :: Tagged s a -> Tagged s a #

atan :: Tagged s a -> Tagged s a #

sinh :: Tagged s a -> Tagged s a #

cosh :: Tagged s a -> Tagged s a #

tanh :: Tagged s a -> Tagged s a #

asinh :: Tagged s a -> Tagged s a #

acosh :: Tagged s a -> Tagged s a #

atanh :: Tagged s a -> Tagged s a #

log1p :: Tagged s a -> Tagged s a #

expm1 :: Tagged s a -> Tagged s a #

log1pexp :: Tagged s a -> Tagged s a #

log1mexp :: Tagged s a -> Tagged s a #

RealFloat a => RealFloat (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

floatRadix :: Tagged s a -> Integer #

floatDigits :: Tagged s a -> Int #

floatRange :: Tagged s a -> (Int, Int) #

decodeFloat :: Tagged s a -> (Integer, Int) #

encodeFloat :: Integer -> Int -> Tagged s a #

exponent :: Tagged s a -> Int #

significand :: Tagged s a -> Tagged s a #

scaleFloat :: Int -> Tagged s a -> Tagged s a #

isNaN :: Tagged s a -> Bool #

isInfinite :: Tagged s a -> Bool #

isDenormalized :: Tagged s a -> Bool #

isNegativeZero :: Tagged s a -> Bool #

isIEEE :: Tagged s a -> Bool #

atan2 :: Tagged s a -> Tagged s a -> Tagged s a #

Storable a => Storable (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

sizeOf :: Tagged s a -> Int #

alignment :: Tagged s a -> Int #

peekElemOff :: Ptr (Tagged s a) -> Int -> IO (Tagged s a) #

pokeElemOff :: Ptr (Tagged s a) -> Int -> Tagged s a -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Tagged s a) #

pokeByteOff :: Ptr b -> Int -> Tagged s a -> IO () #

peek :: Ptr (Tagged s a) -> IO (Tagged s a) #

poke :: Ptr (Tagged s a) -> Tagged s a -> IO () #

Generic (Tagged s b) # 
Instance details

Defined in Data.Tagged

Associated Types

type Rep (Tagged s b) 
Instance details

Defined in Data.Tagged

type Rep (Tagged s b) = D1 ('MetaData "Tagged" "Data.Tagged" "tagged-0.8.9-5BSL3lM5Z0fHwQKEKqcMjV" 'True) (C1 ('MetaCons "Tagged" 'PrefixI 'True) (S1 ('MetaSel ('Just "unTagged") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))

Methods

from :: Tagged s b -> Rep (Tagged s b) x #

to :: Rep (Tagged s b) x -> Tagged s b #

Ix b => Ix (Tagged s b) # 
Instance details

Defined in Data.Tagged

Methods

range :: (Tagged s b, Tagged s b) -> [Tagged s b] #

index :: (Tagged s b, Tagged s b) -> Tagged s b -> Int #

unsafeIndex :: (Tagged s b, Tagged s b) -> Tagged s b -> Int #

inRange :: (Tagged s b, Tagged s b) -> Tagged s b -> Bool #

rangeSize :: (Tagged s b, Tagged s b) -> Int #

unsafeRangeSize :: (Tagged s b, Tagged s b) -> Int #

Num a => Num (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

(+) :: Tagged s a -> Tagged s a -> Tagged s a #

(-) :: Tagged s a -> Tagged s a -> Tagged s a #

(*) :: Tagged s a -> Tagged s a -> Tagged s a #

negate :: Tagged s a -> Tagged s a #

abs :: Tagged s a -> Tagged s a #

signum :: Tagged s a -> Tagged s a #

fromInteger :: Integer -> Tagged s a #

Read b => Read (Tagged s b) # 
Instance details

Defined in Data.Tagged

Fractional a => Fractional (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

(/) :: Tagged s a -> Tagged s a -> Tagged s a #

recip :: Tagged s a -> Tagged s a #

fromRational :: Rational -> Tagged s a #

Integral a => Integral (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

quot :: Tagged s a -> Tagged s a -> Tagged s a #

rem :: Tagged s a -> Tagged s a -> Tagged s a #

div :: Tagged s a -> Tagged s a -> Tagged s a #

mod :: Tagged s a -> Tagged s a -> Tagged s a #

quotRem :: Tagged s a -> Tagged s a -> (Tagged s a, Tagged s a) #

divMod :: Tagged s a -> Tagged s a -> (Tagged s a, Tagged s a) #

toInteger :: Tagged s a -> Integer #

Real a => Real (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

toRational :: Tagged s a -> Rational #

RealFrac a => RealFrac (Tagged s a) # 
Instance details

Defined in Data.Tagged

Methods

properFraction :: Integral b => Tagged s a -> (b, Tagged s a) #

truncate :: Integral b => Tagged s a -> b #

round :: Integral b => Tagged s a -> b #

ceiling :: Integral b => Tagged s a -> b #

floor :: Integral b => Tagged s a -> b #

Show b => Show (Tagged s b) # 
Instance details

Defined in Data.Tagged

Methods

showsPrec :: Int -> Tagged s b -> ShowS #

show :: Tagged s b -> String #

showList :: [Tagged s b] -> ShowS #

Eq b => Eq (Tagged s b) # 
Instance details

Defined in Data.Tagged

Methods

(==) :: Tagged s b -> Tagged s b -> Bool #

(/=) :: Tagged s b -> Tagged s b -> Bool #

Ord b => Ord (Tagged s b) # 
Instance details

Defined in Data.Tagged

Methods

compare :: Tagged s b -> Tagged s b -> Ordering #

(<) :: Tagged s b -> Tagged s b -> Bool #

(<=) :: Tagged s b -> Tagged s b -> Bool #

(>) :: Tagged s b -> Tagged s b -> Bool #

(>=) :: Tagged s b -> Tagged s b -> Bool #

max :: Tagged s b -> Tagged s b -> Tagged s b #

min :: Tagged s b -> Tagged s b -> Tagged s b #

Wrapped (Tagged s a) # 
Instance details

Defined in Control.Lens.Wrapped

Associated Types

type Unwrapped (Tagged s a) 
Instance details

Defined in Control.Lens.Wrapped

type Unwrapped (Tagged s a) = a

Methods

_Wrapped' :: Iso' (Tagged s a) (Unwrapped (Tagged s a)) #

t ~ Tagged s' a' => Rewrapped (Tagged s a) t # 
Instance details

Defined in Control.Lens.Wrapped

type Rep1 (Tagged s :: Type -> Type) # 
Instance details

Defined in Data.Tagged

type Rep1 (Tagged s :: Type -> Type) = D1 ('MetaData "Tagged" "Data.Tagged" "tagged-0.8.9-5BSL3lM5Z0fHwQKEKqcMjV" 'True) (C1 ('MetaCons "Tagged" 'PrefixI 'True) (S1 ('MetaSel ('Just "unTagged") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Corep (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Profunctor.Rep

type Corep (Tagged :: Type -> Type -> Type) = Proxy :: Type -> Type
type Rep (Tagged t) # 
Instance details

Defined in Data.Functor.Rep

type Rep (Tagged t) = ()
type Rep (Tagged s b) # 
Instance details

Defined in Data.Tagged

type Rep (Tagged s b) = D1 ('MetaData "Tagged" "Data.Tagged" "tagged-0.8.9-5BSL3lM5Z0fHwQKEKqcMjV" 'True) (C1 ('MetaCons "Tagged" 'PrefixI 'True) (S1 ('MetaSel ('Just "unTagged") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b)))
type Unwrapped (Tagged s a) # 
Instance details

Defined in Control.Lens.Wrapped

type Unwrapped (Tagged s a) = a

newtype ShowTrace a #

Wrap value which has opaque Show instance.

Constructors

ShowTrace 

Fields

Instances

Instances details
Show (ShowTrace ByteString) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Show (ShowTrace ByteString) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Show (ShowTrace a) => Show (ShowTrace (Tagged t a)) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Methods

showsPrec :: Int -> ShowTrace (Tagged t a) -> ShowS #

show :: ShowTrace (Tagged t a) -> String #

showList :: [ShowTrace (Tagged t a)] -> ShowS #

Show (ShowTrace a) => Show (ShowTrace (Maybe a)) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Show (ShowTrace a) => Show (ShowTrace [Tagged t a]) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Methods

showsPrec :: Int -> ShowTrace [Tagged t a] -> ShowS #

show :: ShowTrace [Tagged t a] -> String #

showList :: [ShowTrace [Tagged t a]] -> ShowS #

Show (ShowTrace a) => Show (ShowTrace [a]) # 
Instance details

Defined in Debug.TraceEmbrace.ByteString

Methods

showsPrec :: Int -> ShowTrace [a] -> ShowS #

show :: ShowTrace [a] -> String #

showList :: [ShowTrace [a]] -> ShowS #

data TraceEmbraceConfig #

Instances

Instances details
Generic TraceEmbraceConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Associated Types

type Rep TraceEmbraceConfig 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

type Rep TraceEmbraceConfig = D1 ('MetaData "TraceEmbraceConfig" "Debug.TraceEmbrace.Config.Type" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "TraceEmbraceConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "mode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SinkMode) :*: S1 ('MetaSel ('Just "traceMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TraceMessageFormat)) :*: (S1 ('MetaSel ('Just "levels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StrictRadixTree TraceLevel)) :*: S1 ('MetaSel ('Just "runtimeLevelsOverrideEnvVar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 EnvironmentVariable))))
Show TraceEmbraceConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Eq TraceEmbraceConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

type Rep TraceEmbraceConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

type Rep TraceEmbraceConfig = D1 ('MetaData "TraceEmbraceConfig" "Debug.TraceEmbrace.Config.Type" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "TraceEmbraceConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "mode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SinkMode) :*: S1 ('MetaSel ('Just "traceMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TraceMessageFormat)) :*: (S1 ('MetaSel ('Just "levels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StrictRadixTree TraceLevel)) :*: S1 ('MetaSel ('Just "runtimeLevelsOverrideEnvVar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 EnvironmentVariable))))

data YamlConfigG (a :: Type -> Type) #

Instances

Instances details
FromJSON YamlConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

FromJSON YamlConfigMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

ToJSON YamlConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

ToJSON YamlConfigMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Semigroup YamlConfigMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Generic YamlConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Associated Types

type Rep (YamlConfigG Identity) 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

type Rep (YamlConfigG Identity) 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Generic YamlConfigMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Show YamlConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Show YamlConfigMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Eq YamlConfig # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

Eq YamlConfigMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

type Rep (YamlConfigG Identity) # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

type Rep (YamlConfigG Identity) # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type

data EnvironmentVariable #

Name of environment variable name.

Constructors

Ignored 
CapsPackageName

Use upcased package name non alphanum chars are replaced with _, plus TRACE_EMBRACE_ prefix

EnvironmentVariable 

Fields

Instances

Instances details
FromJSON EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

ToJSON EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

Generic EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

Associated Types

type Rep EnvironmentVariable 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

type Rep EnvironmentVariable = D1 ('MetaData "EnvironmentVariable" "Debug.TraceEmbrace.Config.Type.EnvVar" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "Ignored" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CapsPackageName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EnvironmentVariable" 'PrefixI 'True) (S1 ('MetaSel ('Just "varName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))
Show EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

Eq EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

Ord EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

Predicate EnvironmentVariableP EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

type Rep EnvironmentVariable # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.EnvVar

type Rep EnvironmentVariable = D1 ('MetaData "EnvironmentVariable" "Debug.TraceEmbrace.Config.Type.EnvVar" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "Ignored" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CapsPackageName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EnvironmentVariable" 'PrefixI 'True) (S1 ('MetaSel ('Just "varName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

data LeveledModulePrefix #

Instances

Instances details
FromJSON LeveledModulePrefix # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

ToJSON LeveledModulePrefix # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Generic LeveledModulePrefix # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Associated Types

type Rep LeveledModulePrefix 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

type Rep LeveledModulePrefix = D1 ('MetaData "LeveledModulePrefix" "Debug.TraceEmbrace.Config.Type.Level" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "LeveledModulePrefix" 'PrefixI 'True) (S1 ('MetaSel ('Just "level") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TraceLevel) :*: S1 ('MetaSel ('Just "modulePrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))
Show LeveledModulePrefix # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Eq LeveledModulePrefix # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Predicate HaskellModulePrefixP LeveledModulePrefix # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Predicate HaskellModulePrefixP [LeveledModulePrefix] # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

type Rep LeveledModulePrefix # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

type Rep LeveledModulePrefix = D1 ('MetaData "LeveledModulePrefix" "Debug.TraceEmbrace.Config.Type.Level" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "LeveledModulePrefix" 'PrefixI 'True) (S1 ('MetaSel ('Just "level") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TraceLevel) :*: S1 ('MetaSel ('Just "modulePrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data TraceLevel #

Instances

Instances details
Bounded TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Enum TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Generic TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Associated Types

type Rep TraceLevel 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

type Rep TraceLevel = D1 ('MetaData "TraceLevel" "Debug.TraceEmbrace.Config.Type.Level" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) ((C1 ('MetaCons "Trace" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Info" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Warning" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Error" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TracingDisabled" 'PrefixI 'False) (U1 :: Type -> Type))))
Show TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Eq TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Ord TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Lift TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

Methods

lift :: Quote m => TraceLevel -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => TraceLevel -> Code m TraceLevel #

type Rep TraceLevel # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Level

type Rep TraceLevel = D1 ('MetaData "TraceLevel" "Debug.TraceEmbrace.Config.Type.Level" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) ((C1 ('MetaCons "Trace" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Info" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Warning" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Error" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TracingDisabled" 'PrefixI 'False) (U1 :: Type -> Type))))

data IoSink #

Instances

Instances details
FromJSON IoSink # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

ToJSON IoSink # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Generic IoSink # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Associated Types

type Rep IoSink 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

type Rep IoSink = D1 ('MetaData "IoSink" "Debug.TraceEmbrace.Config.Type.Mode" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "StdErrSink" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "StdOutSink" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FileSink" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath))))

Methods

from :: IoSink -> Rep IoSink x #

to :: Rep IoSink x -> IoSink #

Show IoSink # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Eq IoSink # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Methods

(==) :: IoSink -> IoSink -> Bool #

(/=) :: IoSink -> IoSink -> Bool #

Lift IoSink # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Methods

lift :: Quote m => IoSink -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => IoSink -> Code m IoSink #

type Rep IoSink # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

type Rep IoSink = D1 ('MetaData "IoSink" "Debug.TraceEmbrace.Config.Type.Mode" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "StdErrSink" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "StdOutSink" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FileSink" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath))))

data SinkMode #

Instances

Instances details
FromJSON SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

ToJSON SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Generic SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Associated Types

type Rep SinkMode 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

type Rep SinkMode = D1 ('MetaData "SinkMode" "Debug.TraceEmbrace.Config.Type.Mode" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) ((C1 ('MetaCons "TraceDisabled" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TraceStd" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TraceUnsafeIo" 'PrefixI 'True) (S1 ('MetaSel ('Just "sink") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IoSink)) :+: C1 ('MetaCons "TraceEvent" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: SinkMode -> Rep SinkMode x #

to :: Rep SinkMode x -> SinkMode #

Show SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Eq SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Lift SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

Methods

lift :: Quote m => SinkMode -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SinkMode -> Code m SinkMode #

Predicate SinkModeP SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

type Rep SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

type Rep SinkMode = D1 ('MetaData "SinkMode" "Debug.TraceEmbrace.Config.Type.Mode" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) ((C1 ('MetaCons "TraceDisabled" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TraceStd" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TraceUnsafeIo" 'PrefixI 'True) (S1 ('MetaSel ('Just "sink") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IoSink)) :+: C1 ('MetaCons "TraceEvent" 'PrefixI 'False) (U1 :: Type -> Type)))

data SinkModeP #

Instances

Instances details
Predicate SinkModeP SinkMode # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.Mode

data TraceMessageElement #

Constructors

LiteralMessage

Constant tracing message

Variables

Variables e.g. ; x: 123; y: 321

FullyQualifiedModule

Full Haskell module name (e.g. Data.Map.Strict)

ModuleName

Unqualified Haskell module name (e.g. Strict)

ShortenJavaModule
D.M.Strict
PackageName

Cabal package name

FunctionName

Function or method name containing tracing

LineNumber

Line number with tracing

Delimiter String 

Instances

Instances details
FromJSON TraceMessageElement # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

ToJSON TraceMessageElement # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Generic TraceMessageElement # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Associated Types

type Rep TraceMessageElement 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep TraceMessageElement = D1 ('MetaData "TraceMessageElement" "Debug.TraceEmbrace.Config.Type.TraceMessage" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (((C1 ('MetaCons "LiteralMessage" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Variables" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FullyQualifiedModule" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ModuleName" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ShortenJavaModule" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PackageName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FunctionName" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LineNumber" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Delimiter" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))))
Show TraceMessageElement # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Eq TraceMessageElement #

TraceMessageElement delimiter

Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Lift TraceMessageElement # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep TraceMessageElement # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep TraceMessageElement = D1 ('MetaData "TraceMessageElement" "Debug.TraceEmbrace.Config.Type.TraceMessage" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (((C1 ('MetaCons "LiteralMessage" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Variables" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FullyQualifiedModule" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ModuleName" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ShortenJavaModule" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PackageName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FunctionName" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LineNumber" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Delimiter" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))))

data TraceMessageFormatG (a :: Type -> Type) #

Instances

Instances details
FromJSON TraceMessageFormat # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

FromJSON TraceMessageFormatMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

ToJSON TraceMessageFormat # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

ToJSON TraceMessageFormatMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Semigroup TraceMessageFormatMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Generic TraceMessageFormat # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Associated Types

type Rep (TraceMessageFormatG Identity) 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep (TraceMessageFormatG Identity) = D1 ('MetaData "TraceMessageFormatG" "Debug.TraceEmbrace.Config.Type.TraceMessage" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "TraceMessageFormat" 'PrefixI 'True) ((S1 ('MetaSel ('Just "entrySeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "keyValueSeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String))) :*: (S1 ('MetaSel ('Just "retValPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "traceLinePattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity NonEmpty [TraceMessageElement])))))
type Rep (TraceMessageFormatG Identity) 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep (TraceMessageFormatG Identity) = D1 ('MetaData "TraceMessageFormatG" "Debug.TraceEmbrace.Config.Type.TraceMessage" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "TraceMessageFormat" 'PrefixI 'True) ((S1 ('MetaSel ('Just "entrySeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "keyValueSeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String))) :*: (S1 ('MetaSel ('Just "retValPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "traceLinePattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity NonEmpty [TraceMessageElement])))))
Generic TraceMessageFormatMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Show TraceMessageFormat # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Show TraceMessageFormatMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Eq TraceMessageFormat # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

Eq TraceMessageFormatMaybe # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep (TraceMessageFormatG Identity) # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep (TraceMessageFormatG Identity) = D1 ('MetaData "TraceMessageFormatG" "Debug.TraceEmbrace.Config.Type.TraceMessage" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "TraceMessageFormat" 'PrefixI 'True) ((S1 ('MetaSel ('Just "entrySeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "keyValueSeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String))) :*: (S1 ('MetaSel ('Just "retValPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "traceLinePattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity NonEmpty [TraceMessageElement])))))
type Rep (TraceMessageFormatG Identity) # 
Instance details

Defined in Debug.TraceEmbrace.Config.Type.TraceMessage

type Rep (TraceMessageFormatG Identity) = D1 ('MetaData "TraceMessageFormatG" "Debug.TraceEmbrace.Config.Type.TraceMessage" "trace-embrace-1.2.0-CmI2KHZh5yZHIowi15ioHX" 'False) (C1 ('MetaCons "TraceMessageFormat" 'PrefixI 'True) ((S1 ('MetaSel ('Just "entrySeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "keyValueSeparator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String))) :*: (S1 ('MetaSel ('Just "retValPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity SeparatorValidator String)) :*: S1 ('MetaSel ('Just "traceLinePattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Columnar Identity NonEmpty [TraceMessageElement])))))

class MonadIO m => MonadUnliftIO (m :: Type -> Type) #

Monads which allow their actions to be run in IO.

While MonadIO allows an IO action to be lifted into another monad, this class captures the opposite concept: allowing you to capture the monadic context. Note that, in order to meet the laws given below, the intuition is that a monad must have no monadic state, but may have monadic context. This essentially limits MonadUnliftIO to ReaderT and IdentityT transformers on top of IO.

Laws. For any function run provided by withRunInIO, it must meet the monad transformer laws as reformulated for MonadUnliftIO:

  • run . return = return
  • run (m >>= f) = run m >>= run . f

Instances of MonadUnliftIO must also satisfy the following laws:

Identity law
withRunInIO (\run -> run m) = m
Inverse law
withRunInIO (\_ -> m) = liftIO m

As an example of an invalid instance, a naive implementation of MonadUnliftIO (StateT s m) might be

withRunInIO inner =
  StateT $ \s ->
    withRunInIO $ \run ->
      inner (run . flip evalStateT s)

This breaks the identity law because the inner run m would throw away any state changes in m.

Since: unliftio-core-0.1.0.0

Minimal complete definition

withRunInIO

Instances

Instances details
MonadUnliftIO IO # 
Instance details

Defined in Control.Monad.IO.Unlift

Methods

withRunInIO :: ((forall a. IO a -> IO a) -> IO b) -> IO b #

MonadUnliftIO m => MonadUnliftIO (ResourceT m) #

Since: resourcet-1.1.10

Instance details

Defined in Control.Monad.Trans.Resource.Internal

Methods

withRunInIO :: ((forall a. ResourceT m a -> IO a) -> IO b) -> ResourceT m b #

MonadUnliftIO m => MonadUnliftIO (IdentityT m) # 
Instance details

Defined in Control.Monad.IO.Unlift

Methods

withRunInIO :: ((forall a. IdentityT m a -> IO a) -> IO b) -> IdentityT m b #

MonadUnliftIO m => MonadUnliftIO (ReaderT r m) # 
Instance details

Defined in Control.Monad.IO.Unlift

Methods

withRunInIO :: ((forall a. ReaderT r m a -> IO a) -> IO b) -> ReaderT r m b #

data CompressParams #

The full set of parameters for compression. The defaults are defaultCompressParams.

The compressBufferSize is the size of the first output buffer containing the compressed data. If you know an approximate upper bound on the size of the compressed data then setting this parameter can save memory. The default compression output buffer size is 16k. If your estimate is wrong it does not matter too much, the default buffer size will be used for the remaining chunks.

Instances

Instances details
Generic CompressParams # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Associated Types

type Rep CompressParams

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep CompressParams = D1 ('MetaData "CompressParams" "Codec.Compression.Zlib.Internal" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'False) (C1 ('MetaCons "CompressParams" 'PrefixI 'True) ((S1 ('MetaSel ('Just "compressLevel") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 CompressionLevel) :*: (S1 ('MetaSel ('Just "compressMethod") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Method) :*: S1 ('MetaSel ('Just "compressWindowBits") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 WindowBits))) :*: ((S1 ('MetaSel ('Just "compressMemoryLevel") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 MemoryLevel) :*: S1 ('MetaSel ('Just "compressStrategy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CompressionStrategy)) :*: (S1 ('MetaSel ('Just "compressBufferSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Just "compressDictionary") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ByteString))))))
Show CompressParams # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Eq CompressParams #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

Ord CompressParams #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep CompressParams #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep CompressParams = D1 ('MetaData "CompressParams" "Codec.Compression.Zlib.Internal" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'False) (C1 ('MetaCons "CompressParams" 'PrefixI 'True) ((S1 ('MetaSel ('Just "compressLevel") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 CompressionLevel) :*: (S1 ('MetaSel ('Just "compressMethod") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Method) :*: S1 ('MetaSel ('Just "compressWindowBits") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 WindowBits))) :*: ((S1 ('MetaSel ('Just "compressMemoryLevel") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 MemoryLevel) :*: S1 ('MetaSel ('Just "compressStrategy") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CompressionStrategy)) :*: (S1 ('MetaSel ('Just "compressBufferSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel ('Just "compressDictionary") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ByteString))))))

data DecompressError #

The possible error cases when decompressing a stream.

This can be shown to give a human readable error message.

Constructors

TruncatedInput

The compressed data stream ended prematurely. This may happen if the input data stream was truncated.

DictionaryRequired

It is possible to do zlib compression with a custom dictionary. This allows slightly higher compression ratios for short files. However such compressed streams require the same dictionary when decompressing. This error is for when we encounter a compressed stream that needs a dictionary, and it's not provided.

DictionaryMismatch

If the stream requires a dictionary and you provide one with the wrong DictionaryHash then you will get this error.

DataFormatError String

If the compressed data stream is corrupted in any way then you will get this error, for example if the input data just isn't a compressed zlib data stream. In particular if the data checksum turns out to be wrong then you will get all the decompressed data but this error at the end, instead of the normal successful StreamEnd.

Instances

Instances details
Exception DecompressError # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Generic DecompressError # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Associated Types

type Rep DecompressError

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep DecompressError = D1 ('MetaData "DecompressError" "Codec.Compression.Zlib.Internal" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'False) ((C1 ('MetaCons "TruncatedInput" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DictionaryRequired" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DictionaryMismatch" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataFormatError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))
Show DecompressError # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Eq DecompressError # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Ord DecompressError #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep DecompressError #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep DecompressError = D1 ('MetaData "DecompressError" "Codec.Compression.Zlib.Internal" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'False) ((C1 ('MetaCons "TruncatedInput" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DictionaryRequired" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DictionaryMismatch" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataFormatError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

data DecompressParams #

The full set of parameters for decompression. The defaults are defaultDecompressParams.

The decompressBufferSize is the size of the first output buffer, containing the uncompressed data. If you know an exact or approximate upper bound on the size of the decompressed data then setting this parameter can save memory. The default decompression output buffer size is 32k. If your estimate is wrong it does not matter too much, the default buffer size will be used for the remaining chunks.

One particular use case for setting the decompressBufferSize is if you know the exact size of the decompressed data and want to produce a strict ByteString. The compression and decompression functions use lazy ByteStrings but if you set the decompressBufferSize correctly then you can generate a lazy ByteString with exactly one chunk, which can be converted to a strict ByteString in O(1) time using concat . toChunks.

Instances

Instances details
Generic DecompressParams # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Associated Types

type Rep DecompressParams

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep DecompressParams = D1 ('MetaData "DecompressParams" "Codec.Compression.Zlib.Internal" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'False) (C1 ('MetaCons "DecompressParams" 'PrefixI 'True) ((S1 ('MetaSel ('Just "decompressWindowBits") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 WindowBits) :*: S1 ('MetaSel ('Just "decompressBufferSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "decompressDictionary") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ByteString)) :*: S1 ('MetaSel ('Just "decompressAllMembers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))
Show DecompressParams # 
Instance details

Defined in Codec.Compression.Zlib.Internal

Eq DecompressParams #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

Ord DecompressParams #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep DecompressParams #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Internal

type Rep DecompressParams = D1 ('MetaData "DecompressParams" "Codec.Compression.Zlib.Internal" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'False) (C1 ('MetaCons "DecompressParams" 'PrefixI 'True) ((S1 ('MetaSel ('Just "decompressWindowBits") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 WindowBits) :*: S1 ('MetaSel ('Just "decompressBufferSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :*: (S1 ('MetaSel ('Just "decompressDictionary") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ByteString)) :*: S1 ('MetaSel ('Just "decompressAllMembers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))

newtype CompressionLevel #

The compression level parameter controls the amount of compression. This is a trade-off between the amount of compression and the time required to do the compression.

Constructors

CompressionLevel Int 

Instances

Instances details
Generic CompressionLevel # 
Instance details

Defined in Codec.Compression.Zlib.Stream

Associated Types

type Rep CompressionLevel 
Instance details

Defined in Codec.Compression.Zlib.Stream

type Rep CompressionLevel = D1 ('MetaData "CompressionLevel" "Codec.Compression.Zlib.Stream" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'True) (C1 ('MetaCons "CompressionLevel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))
Show CompressionLevel # 
Instance details

Defined in Codec.Compression.Zlib.Stream

Eq CompressionLevel # 
Instance details

Defined in Codec.Compression.Zlib.Stream

Ord CompressionLevel #

Since: zlib-0.7.0.0

Instance details

Defined in Codec.Compression.Zlib.Stream

type Rep CompressionLevel # 
Instance details

Defined in Codec.Compression.Zlib.Stream

type Rep CompressionLevel = D1 ('MetaData "CompressionLevel" "Codec.Compression.Zlib.Stream" "zlib-0.7.1.0-fXYaPGY85m64i3Jj7klH9" 'True) (C1 ('MetaCons "CompressionLevel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))