module Data.Aeson.Schema.Utils.Invariant
  ( unreachable
  ) where

-- | An error function to indicate that a branch is unreachable. Provides a useful error message
-- if it ends up happening, pointing users to write a bug report.
unreachable :: String -> a
unreachable :: String -> a
unreachable String
msg = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ [String] -> String
unlines
  [ String
"`aeson-schemas` internal error: " String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
msg
  , String
"Please file a bug report at https://github.com/LeapYear/aeson-schemas/issues/"
  ]