Generate platform version comparision page
[darcs-mirror-hpvt.git] / Types.hs
1 module Types (PackageName, DistroInfo, fromHackage, fromDebian, fromCabal, Version(..)) where
2
3 import Data.Char
4 import qualified Data.Map as M
5
6 import qualified Distribution.Package as D
7
8 type DistroInfo = M.Map PackageName Version
9
10 newtype PackageName = PN String
11 data Version = Version { version :: String, url :: URL} deriving (Eq)
12
13 instance Ord Version where
14         v1 `compare` v2 = version v1 `compare` version v2
15
16 type URL = String
17
18 instance Eq PackageName where
19         (PN n1) == (PN n2) = map toLower n1 == map toLower n2
20
21 instance Ord PackageName where
22         (PN n1) `compare` (PN n2) = map toLower n1 `compare` map toLower n2
23
24 instance Show PackageName where
25         show (PN n) = n
26
27 fromHackage = PN
28 fromDebian = PN
29 fromCabal (D.PackageName n) = PN n