Geodetic-0.1: Data/Geo/Latitude.hs
{-# 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