-- | Basic data types for library management.

module Agda.Interaction.Library.Base where

-- | A symbolic library name.
--
type LibName = String

-- | The special name @\".\"@ is used to indicated that the current directory
--   should count as a project root.
--
libNameForCurrentDir :: LibName
libNameForCurrentDir = "."

-- | Content of a @.agda-lib@ file.
--
data AgdaLibFile = AgdaLib
  { libName     :: LibName     -- ^ The symbolic name of the library.
  , libFile     :: FilePath    -- ^ Path to this @.agda-lib@ file (not content of the file).
  , libIncludes :: [FilePath]  -- ^ Roots where to look for the modules of the library.
  , libDepends  :: [LibName]   -- ^ Dependencies.
  }
  deriving (Show)

emptyLibFile :: AgdaLibFile
emptyLibFile = AgdaLib { libName = "", libFile = "", libIncludes = [], libDepends = [] }