{-|
Module : NearExemplar
Description : declares the exemplars used for the near Model
License : GPL-3
Maintainer : hahn@geoinfo.tuwien.ac.at
Stability : Declares
Includes all data types and functions needed by the near Model module.
The exemplars are represented by a data type deriving some type classes.
-}
module NearExemplar where
-- | This data defines the exemplars that are handled by the model
-- be sure to have for all of these frequency values.
-- The data type must derive following type classes:
-- (Show, Eq, Ord, Enum,Bounded)
data NearExemplar =
-- | represents the fifty metres exemplar
M50
-- | represents the 100 metres exemplar
| M100
-- | represents the 150 metres exemplar
| M150
-- | represents the 300 metres exemplar
| M300
-- | represents the 450 metres exemplar
| M450
-- | represents the 450 metres exemplar
| M1000
-- | represents the 5000 metres exemplar
| M5000
-- | represents the 10.000 metres exemplar
| M10000
deriving (Eq, Ord, Enum,Bounded)
-- | returns a list of the exemplars
--
-- >>> exemplars
-- [M50,M100,M150,M300,M450,M1000,M5000,M10000]
exemplars = enumFromTo minBound $ maxBound `asTypeOf` M50
-- | pretty print for the Exemplar type
instance Show NearExemplar where
show M50 = "50 m"
show M100 = "100 m"
show M150 = "150 m"
show M300 = "300 m"
show M450 = "450 m"
show M1000= "1000 m"
show M5000 = "5000 m"
show M10000 = "10000 m"