    module Prettyprinter.Render.Util.Panic (
        panicUncaughtFail,
        panicUnpairedPop,
        panicSimpleDocTreeConversionFailed,
        panicInputNotFullyConsumed,
        panicPeekedEmpty,
        panicPoppedEmpty,
    ) where

    -- | Raise a hard 'error' if there is a 'Prettyprinter.SFail' in a
    -- 'Prettyprinter.SimpleDocStream'.
    panicUncaughtFail :: void
    panicUncaughtFail :: forall void. void
    panicUncaughtFail = [Char] -> void
    forall a. HasCallStack => [Char] -> a
    error ([Char]
    "»SFail« must not appear in a rendered »SimpleDocStream«. This is a bug in the layout algorithm! " [Char] -> [Char] -> [Char]
    forall a. [a] -> [a] -> [a]
    ++ [Char]
    report)

    -- | Raise a hard 'error' when an annotation terminator is encountered in an
    -- unannotated region.
    panicUnpairedPop :: void
    panicUnpairedPop :: forall void. void
    panicUnpairedPop = [Char] -> void
    forall a. HasCallStack => [Char] -> a
    error ([Char]
    "An unpaired style terminator was encountered. This is a bug in the layout algorithm! " [Char] -> [Char] -> [Char]
    forall a. [a] -> [a] -> [a]
    ++ [Char]
    report)

    -- | Raise a hard generic 'error' when the
    -- 'Prettyprinter.SimpleDocStream' to
    -- 'Prettyprinter.Render.Util.SimpleDocTree.SimpleDocTree' conversion fails.
    panicSimpleDocTreeConversionFailed :: void
    panicSimpleDocTreeConversionFailed :: forall void. void
    panicSimpleDocTreeConversionFailed = [Char] -> void
    forall a. HasCallStack => [Char] -> a
    error ([Char]
    "Conversion from SimpleDocStream to SimpleDocTree failed! " [Char] -> [Char] -> [Char]
    forall a. [a] -> [a] -> [a]
    ++ [Char]
    report)

    -- | Raise a hard 'error' when the »to
    -- 'Prettyprinter.Render.Util.SimpleDocTree.SimpleDocTree'« parser finishes
    -- without consuming the full input.
    panicInputNotFullyConsumed :: void
    panicInputNotFullyConsumed :: forall void. void
    panicInputNotFullyConsumed = [Char] -> void
    forall a. HasCallStack => [Char] -> a
    error ([Char]
    "Conversion from SimpleDocStream to SimpleDocTree left unconsumed input! " [Char] -> [Char] -> [Char]
    forall a. [a] -> [a] -> [a]
    ++ [Char]
    report)

    report :: String
    report :: [Char]
    report = [Char]
    "Please report this as a bug"

    panicPeekedEmpty, panicPoppedEmpty :: void
    (void
    panicPeekedEmpty, void
    panicPoppedEmpty) = ([Char] -> void
    forall {a}. [Char] -> a
    mkErr [Char]
    "Peeked", [Char] -> void
    forall {a}. [Char] -> a
    mkErr [Char]
    "Popped")
      where
        mkErr :: [Char] -> a
    mkErr [Char]
    x = [Char] -> a
    forall a. HasCallStack => [Char] -> a
    error ([Char]
    x [Char] -> [Char] -> [Char]
    forall a. [a] -> [a] -> [a]
    ++ [Char]
    " an empty style stack! Please report this as a bug.")