Hoogle Search
Within LTS Haskell 24.52 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
prettyCallStack :: CallStack -> Stringeffectful-core Effectful.Labeled.Error Pretty print a CallStack.
-
effectful-core Effectful.NonDet 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.
getCallStack :: CallStack -> [([Char], SrcLoc)]effectful-core Effectful.NonDet Extract a list of call-sites from the CallStack. The list is ordered by most recent call.
prettyCallStack :: CallStack -> Stringeffectful-core Effectful.NonDet Pretty print a CallStack.
compareLexicographically :: Expr -> Expr -> Orderingexpress Data.Express O(n). Lexicographical structural comparison of Exprs where variables < constants < applications then types are compared before string representations.
> compareLexicographically one (one -+- one) LT > compareLexicographically one zero GT > compareLexicographically (xx -+- zero) (zero -+- xx) LT > compareLexicographically (zero -+- xx) (zero -+- xx) EQ
(cf. compareTy) This comparison is a total order.compareLexicographically :: Expr -> Expr -> Orderingexpress Data.Express.Core O(n). Lexicographical structural comparison of Exprs where variables < constants < applications then types are compared before string representations.
> compareLexicographically one (one -+- one) LT > compareLexicographically one zero GT > compareLexicographically (xx -+- zero) (zero -+- xx) LT > compareLexicographically (zero -+- xx) (zero -+- xx) EQ
(cf. compareTy) This comparison is a total order.reallyDeriveCascading :: Name -> (Name -> DecsQ) -> Name -> DecsQexpress Data.Express.Utils.TH No documentation available.
forAll :: (Show a, IsProperty prop) => Gen a -> (a -> prop) -> Propertyfoundation Foundation.Check Running a generator for a specific type under a property
finally :: MonadBracket m => m a -> m b -> m afoundation Foundation.Exception No documentation available.
skipAll :: (ParserSource input, Collection (Chunk input)) => Parser input ()foundation Foundation.Parser consume every chunk of the stream