{-# LANGUAGE Safe #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_HADDOCK hide #-} {-# OPTIONS_GHC -Wno-all-missed-specialisations #-} module Text.Gigaparsec.Internal.Require (require, RequirementUnsatisfied) where import Control.Exception (Exception, throw) type RequirementUnsatisfied :: * data RequirementUnsatisfied = RequirementUnsatisfied { RequirementUnsatisfied -> String func :: !String , RequirementUnsatisfied -> String msg :: !String } instance Show RequirementUnsatisfied where show :: RequirementUnsatisfied -> String show :: RequirementUnsatisfied -> String show RequirementUnsatisfied{String msg :: String func :: String msg :: RequirementUnsatisfied -> String func :: RequirementUnsatisfied -> String ..} = String "requirement unsatisfied, " forall a. [a] -> [a] -> [a] ++ String msg forall a. [a] -> [a] -> [a] ++ String " (" forall a. [a] -> [a] -> [a] ++ String func forall a. [a] -> [a] -> [a] ++ String ")" instance Exception RequirementUnsatisfied require :: Bool -> String -> String -> a -> a require :: forall a. Bool -> String -> String -> a -> a require Bool True String _ String _ = forall a. a -> a id require Bool False String func String msg = forall a e. Exception e => e -> a throw (String -> String -> RequirementUnsatisfied RequirementUnsatisfied String func String msg)