{-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses #-} -- | A latitude on earth in degrees. module Data.Geo.Latitude( Latitude, latitude ) where import Data.Geo.Accessor.Value import Data.Fixed newtype Latitude = Latitude Double deriving (Eq, Ord, Enum, Show, Num, Fractional, Floating) -- | Construct a latitude using the given number of degrees between -90 and 90. latitude :: Double -> Latitude latitude x = Latitude ((x + 90) `mod'` 180 - 90) instance Value Latitude Double where value (Latitude x) = x