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