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.
ErrorCallWithLocation :: String -> String -> ErrorCalleffectful-core Effectful.Exception No documentation available.
-
effectful-core Effectful.Exception Thrown when the program attempts to call atomically, from the stm package, inside another call to atomically.
NestedAtomically :: NestedAtomicallyeffectful-core Effectful.Exception No documentation available.
finally :: forall (es :: [Effect]) a b . Eff es a -> Eff es b -> Eff es aeffectful-core Effectful.Exception Lifted finally.
getAllExceptionAnnotations :: ExceptionContext -> [SomeExceptionAnnotation]effectful-core Effectful.Exception No documentation available.
reallyUnsafeLiftMapIO :: forall a b (es :: [Effect]) . (IO a -> IO b) -> Eff es a -> Eff es beffectful-core Effectful.Internal.Monad Utility for lifting IO computations of type
IO a -> IO b
toEff es a -> Eff es b
This function is really unsafe because:- It can be used to introduce arbitrary IO actions into pure Eff computations.
- The IO computation must run its argument in a way that's perceived as sequential to the outside observer, e.g. in the same thread or in a worker thread that finishes before the argument is run again.
-
effectful-core Effectful.Internal.Monad Create an unlifting function. This function is really unsafe because:
- It can be used to introduce arbitrary IO actions into pure Eff computations.
- Unlifted Eff computations must be run in a way that's perceived as sequential to the outside observer, e.g. in the same thread as the caller of reallyUnsafeUnliftIO or in a worker thread that finishes before another unlifted computation is run.
thawCallStack :: CallStack -> CallStackeffectful-core Effectful.Internal.Utils No documentation available.
-
effectful-core Effectful.Labeled.Error 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.Labeled.Error Extract a list of call-sites from the CallStack. The list is ordered by most recent call.