{-# 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