definition module CLPM.Package from StdClass import class Ord from StdFile import class <<< from StdOverloaded import class <, class ==, class toString from StdTuple import instance < (a,b,c) | < a & < b & < c from Data.Error import :: MaybeError, :: MaybeErrorString from Data.Maybe import :: Maybe from Text.JSON import :: JSONNode, generic JSONEncode, generic JSONDecode from CLPM.Repository import :: Repository, :: RepositoryItem from CLPM.Util import class Parse DEFAULT_NAME :== "Unnamed package" DEFAULT_VERSION :== (0,1,0) DEFAULT_DESC :== "Empty description" DEFAULT_AUTHOR :== "Unknown author" DEFAULT_URL :== "http://clean.cs.ru.nl" DEFAULT_MAIN :== "main" DEFAULT_PATHS :== ["."] DEFAULT_OPTIONS :== { show_result = True , show_constructors = True , show_time = True , heap_size = 2000 , stack_size = 500 , extra_flags = [] } MODULE_DIR :== "clpm_modules" PACKAGE_FILE :== "clpm.json" :: StoredPackage :: Package = { name :: PackageName , version :: Version , desc :: Description , author :: Author , url :: Url , main :: Maybe Path , depends :: [Dependency] , paths :: [Path] , options :: Options } :: Dependency = Package PackageName VersionRequirement :: Options = { show_result :: Bool , show_constructors :: Bool , show_time :: Bool , heap_size :: Int , stack_size :: Int , extra_flags :: [String] } :: PackageName :== String :: Version :== (Int, Int, Int) :: Description :== String :: Author :== String :: Url :== String :: Path :== String :: GitTag = Commit String | Tag String | Latest :: VersionRequirement = AtLeast Version | AtMost Version | Satisfy (Maybe Int, Maybe Int, Maybe Int) | Compound VersionRequirement VersionRequirement derive JSONEncode StoredPackage derive JSONDecode StoredPackage instance <<< Package instance toString Version instance == Dependency instance == VersionRequirement instance == GitTag instance Parse Dependency instance Parse VersionRequirement depName :: Dependency -> PackageName satisfies :: VersionRequirement Version -> Bool toPackage :: StoredPackage -> MaybeErrorString Package toStoredPackage :: Package -> StoredPackage readPackage :: String *World -> *(MaybeErrorString Package, *World) resolveDependencies :: Repository Package -> MaybeErrorString [(Dependency, Version)] getRecursivePaths :: Package *World -> (MaybeErrorString [Path], *World) optionsToFlags :: Options -> [String] install :: Dependency Version *World -> *(MaybeErrorString (), *World)