imp-1.0.1.0: source/library/Imp/Type/Target.hs
module Imp.Type.Target where
import qualified Control.Monad.Catch as Exception
import qualified GHC.Plugins as Plugin
import qualified Imp.Extra.ModuleName as ModuleName
newtype Target
= Target Plugin.ModuleName
deriving (Eq, Ord, Show)
fromModuleName :: Plugin.ModuleName -> Target
fromModuleName = Target
fromString :: (Exception.MonadThrow m) => String -> m Target
fromString = fmap fromModuleName . ModuleName.fromString
toModuleName :: Target -> Plugin.ModuleName
toModuleName (Target x) = x