diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+0.0.14
+
+* Add mod functions for `DegreesLatitude` and `DegreesLongitude`.
+
 0.0.13
 
 * Tidy up imports
diff --git a/coordinate.cabal b/coordinate.cabal
--- a/coordinate.cabal
+++ b/coordinate.cabal
@@ -1,5 +1,5 @@
 name:               coordinate
-version:            0.0.13
+version:            0.0.14
 license:            BSD3
 license-file:       LICENCE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
diff --git a/src/Data/Geo/Coordinate/DegreesLatitude.hs b/src/Data/Geo/Coordinate/DegreesLatitude.hs
--- a/src/Data/Geo/Coordinate/DegreesLatitude.hs
+++ b/src/Data/Geo/Coordinate/DegreesLatitude.hs
@@ -5,6 +5,7 @@
 module Data.Geo.Coordinate.DegreesLatitude(
   DegreesLatitude
 , AsDegreesLatitude(..)
+, modDegreesLatitude
 ) where
 
 import Control.Applicative(Applicative)
@@ -12,6 +13,7 @@
 import Control.Lens(Optic', Choice, prism')
 import Data.Bool((&&))
 import Data.Eq(Eq)
+import Data.Fixed(mod')
 import Data.Int(Int)
 import Data.Maybe(Maybe(Just, Nothing))
 import Data.Ord(Ord((<), (>)))
@@ -62,3 +64,25 @@
       (\i -> if i > -90 && i < 90
                then Just (DegreesLatitude i)
                else Nothing)
+
+-- | Setting a value `>= 90` will get that value `(`mod` 90)`.
+--
+-- >>> modDegreesLatitude 7
+-- DegreesLatitude 7
+--
+-- >>> modDegreesLatitude 0
+-- DegreesLatitude 0
+--
+-- >>> modDegreesLatitude 90
+-- DegreesLatitude 0
+--
+-- >>> modDegreesLatitude 1
+-- DegreesLatitude 1
+--
+-- >>> modDegreesLatitude 89
+-- DegreesLatitude 89 
+modDegreesLatitude ::
+  Int
+  -> DegreesLatitude
+modDegreesLatitude x =
+  DegreesLatitude (x `mod'` 90)
diff --git a/src/Data/Geo/Coordinate/DegreesLongitude.hs b/src/Data/Geo/Coordinate/DegreesLongitude.hs
--- a/src/Data/Geo/Coordinate/DegreesLongitude.hs
+++ b/src/Data/Geo/Coordinate/DegreesLongitude.hs
@@ -5,6 +5,7 @@
 module Data.Geo.Coordinate.DegreesLongitude(
   DegreesLongitude
 , AsDegreesLongitude(..)
+, modDegreesLongitude
 ) where
 
 import Control.Applicative(Applicative)
@@ -12,6 +13,7 @@
 import Control.Lens(Optic', Choice, prism')
 import Data.Bool((&&))
 import Data.Eq(Eq)
+import Data.Fixed(mod')
 import Data.Int(Int)
 import Data.Maybe(Maybe(Just, Nothing))
 import Data.Ord(Ord((<), (>)))
@@ -62,3 +64,25 @@
       (\i -> if i > -180 && i < 180
                then Just (DegreesLongitude i)
                else Nothing)
+
+-- | Setting a value `>= 90` will get that value `(`mod` 180)`.
+--
+-- >>> modDegreesLongitude 7
+-- DegreesLongitude 7
+--
+-- >>> modDegreesLongitude 0
+-- DegreesLongitude 0
+--
+-- >>> modDegreesLongitude 180
+-- DegreesLongitude 0
+--
+-- >>> modDegreesLongitude 1
+-- DegreesLongitude 1
+--
+-- >>> modDegreesLongitude 179
+-- DegreesLongitude 179 
+modDegreesLongitude ::
+  Int
+  -> DegreesLongitude
+modDegreesLongitude x =
+  DegreesLongitude (x `mod'` 180)
diff --git a/src/Data/Geo/Coordinate/Longitude.hs b/src/Data/Geo/Coordinate/Longitude.hs
--- a/src/Data/Geo/Coordinate/Longitude.hs
+++ b/src/Data/Geo/Coordinate/Longitude.hs
@@ -62,10 +62,10 @@
 -- >>> do deg <- (179 :: Int) ^? _DegreesLongitude; min <- (59 :: Int) ^? _Minutes; sec <- (60 :: Double) ^? _Seconds; (deg, min, sec) ^? _Longitude :: Maybe Longitude
 -- Nothing
 --
--- >>> fmap (\x -> _Longitude # x :: (DegreesLongitude, Minutes, Seconds))  (7 ^? fracLongitude :: Maybe Longitude)
+-- >>> fmap (\x -> _Longitude # x :: (DegreesLongitude, Minutes, Seconds))  ((7 :: Double) ^? _Longitude :: Maybe Longitude)
 -- Just (DegreesLongitude 7,Minutes 0,Seconds 0.0000)
 --
--- >>> fmap (\x -> _Longitude # x :: (DegreesLongitude, Minutes, Seconds))  (7.12 ^? fracLongitude :: Maybe Longitude)
+-- >>> fmap (\x -> _Longitude # x :: (DegreesLongitude, Minutes, Seconds))  ((7.12 :: Double) ^? _Longitude :: Maybe Longitude)
 -- Just (DegreesLongitude 7,Minutes 7,Seconds 12.0000)
 instance (Profunctor p, Functor f) => AsLongitude p f (DegreesLongitude, Minutes, Seconds) where
   _Longitude =
