Hoogle Search
Within LTS Haskell 24.50 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
hedgehog Hedgehog.Internal.Property Generates a random input for the test by running the provided generator. This is a the same as forAllT but allows the user to provide a custom rendering function. This is useful for values which don't have a Show instance.
journalLogs :: Journal -> [Log]hedgehog Hedgehog.Internal.Property No documentation available.
checkParallel :: MonadIO m => Group -> m Boolhedgehog Hedgehog.Internal.Runner Check a group of properties in parallel. Warning: although this check function runs tests faster than checkSequential, it should be noted that it may cause problems with properties that are not self-contained. For example, if you have a group of tests which all use the same database table, you may find that they interfere with each other when being run in parallel. Using Template Haskell for property discovery:
tests :: IO Bool tests = checkParallel $$(discover)
With manually specified properties:tests :: IO Bool tests = checkParallel $ Group "Test.Example" [ ("prop_reverse", prop_reverse) ]-
hedgehog Hedgehog.Internal.Source 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" hello CallStack (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.
callStack :: HasCallStack => CallStackhedgehog Hedgehog.Internal.Source Return the current CallStack. Does *not* include the call-site of callStack.
getCaller :: CallStack -> Maybe Spanhedgehog Hedgehog.Internal.Source No documentation available.
withFrozenCallStack :: HasCallStack => (HasCallStack => a) -> ahedgehog Hedgehog.Internal.Source Perform some computation without adding new entries to the CallStack.
data
Callback (input :: Type -> Type -> Type) output (state :: Type -> Type -> Type)hedgehog Hedgehog.Internal.State Optional command configuration.
data
Parallel (m :: Type -> Type) (state :: Type -> Type -> Type)hedgehog Hedgehog.Internal.State A sequential prefix of actions to execute, with two branches to execute in parallel.
-
hedgehog Hedgehog.Internal.State No documentation available.