packages feed

NearContextAlgebra-0.1.0.0: src/NearExemplar.hs

{-|
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 Exemplar =
 -- | 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 Exemplar 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"