{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module What4.FunctionName
(
FunctionName
, functionName
, functionNameFromText
, startFunctionName
) where
import Data.Hashable
import Data.String
import qualified Data.Text as Text
import qualified Text.PrettyPrint.ANSI.Leijen as PP
newtype FunctionName = FunctionName { functionName :: Text.Text }
deriving (Eq, Ord, Hashable)
instance IsString FunctionName where
fromString s = FunctionName (fromString s)
instance Show FunctionName where
show (FunctionName nm) = Text.unpack nm
instance PP.Pretty FunctionName where
pretty (FunctionName nm) = PP.text (Text.unpack nm)
startFunctionName :: FunctionName
startFunctionName = fromString "_start"
functionNameFromText :: Text.Text -> FunctionName
functionNameFromText = FunctionName