definition module CLPM.Repository from Data.Error import :: MaybeError, :: MaybeErrorString from Data.Maybe import :: Maybe from Text.JSON import :: JSONNode, generic JSONDecode from CLPM.Package import :: PackageName, :: Version, :: Description, :: Author, :: Url, :: VersionRequirement REPOSITORY :== "clpm.camilstaps.nl" PORT :== 80 :: Repository :== [RepositoryItem] :: RepositoryItem = { name :: PackageName , desc :: Description , author :: Author , url :: Url , versions :: [RepositoryItemVersion] } :: RepositoryItemVersion = { version :: Version , depends :: [String] } derive JSONDecode RepositoryItem, RepositoryItemVersion getRepository :: Url *World -> *(MaybeErrorString Repository, *World) getVersions :: (PackageName Repository -> [RepositoryItemVersion]) resolve :: PackageName VersionRequirement Repository -> [RepositoryItemVersion]