module Agda.Interaction.Library.Base where
import Agda.Utils.Lens
type LibName = String
libNameForCurrentDir :: LibName
libNameForCurrentDir = "."
data AgdaLibFile = AgdaLibFile
{ _libName :: LibName
, _libFile :: FilePath
, _libIncludes :: [FilePath]
, _libDepends :: [LibName]
}
deriving (Show)
emptyLibFile :: AgdaLibFile
emptyLibFile = AgdaLibFile
{ _libName = ""
, _libFile = ""
, _libIncludes = []
, _libDepends = []
}
libName :: Lens' LibName AgdaLibFile
libName f a = f (_libName a) <&> \ x -> a { _libName = x }
libFile :: Lens' FilePath AgdaLibFile
libFile f a = f (_libFile a) <&> \ x -> a { _libFile = x }
libIncludes :: Lens' [FilePath] AgdaLibFile
libIncludes f a = f (_libIncludes a) <&> \ x -> a { _libIncludes = x }
libDepends :: Lens' [LibName] AgdaLibFile
libDepends f a = f (_libDepends a) <&> \ x -> a { _libDepends = x }