    -- Copyright © 2011 National Institute of Aerospace / Galois, Inc.

    {-# LANGUAGE Safe #-}

    -- | Custom functions to report error messages to users.
    module Copilot.Interpret.Error
      ( badUsage ) where

    -- | Report an error due to an error detected by Copilot (e.g., user error).
    badUsage :: String -- ^ Description of the error.
             -> a
    badUsage :: forall a. String -> a
    badUsage String
    msg = String -> a
    forall a. HasCallStack => String -> a
    error (String -> a) -> String -> a
    forall a b. (a -> b) -> a -> b
    $ String
    "Copilot error: " String -> String -> String
    forall a. [a] -> [a] -> [a]
    ++ String
    msg