-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A representation of latitude and longitude -- -- -- A representation of latitude and longitude @package coordinate @version 0.0.21 module Data.Geo.Coordinate.Seconds data Seconds class AsSeconds p f s _Seconds :: AsSeconds p f s => Optic' p f s Seconds -- | Setting a value within the range 0 and 60 using -- modulo arithmetic. -- --
--   >>> modSeconds 7
--   Seconds 7.0000
--   
-- --
--   >>> modSeconds 0
--   Seconds 0.0000
--   
-- --
--   >>> modSeconds (-0.0001)
--   Seconds 59.9999
--   
-- --
--   >>> modSeconds 60
--   Seconds 0.0000
--   
-- --
--   >>> modSeconds 59.99999
--   Seconds 60.0000
--   
-- --
--   >>> modSeconds 59.999
--   Seconds 59.9990
--   
-- --
--   >>> modSeconds 61
--   Seconds 1.0000
--   
-- --
--   >>> modSeconds (-1)
--   Seconds 59.0000
--   
modSeconds :: Double -> Seconds instance GHC.Classes.Ord Data.Geo.Coordinate.Seconds.Seconds instance GHC.Classes.Eq Data.Geo.Coordinate.Seconds.Seconds instance GHC.Show.Show Data.Geo.Coordinate.Seconds.Seconds instance Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Seconds.Seconds instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Seconds.AsSeconds p f GHC.Types.Double module Data.Geo.Coordinate.Minutes data Minutes class AsMinutes p f s _Minutes :: AsMinutes p f s => Optic' p f s Minutes -- | Setting a value within the range 0 and 60 using -- modulo arithmetic. -- --
--   >>> modMinutes 7
--   Minutes 7
--   
-- --
--   >>> modMinutes 0
--   Minutes 0
--   
-- --
--   >>> modMinutes 60
--   Minutes 0
--   
-- --
--   >>> modMinutes 1
--   Minutes 1
--   
-- --
--   >>> modMinutes 59
--   Minutes 59 
--   
-- --
--   >>> modMinutes 61
--   Minutes 1
--   
-- --
--   >>> modMinutes (-1)
--   Minutes 59
--   
modMinutes :: Int -> Minutes instance GHC.Show.Show Data.Geo.Coordinate.Minutes.Minutes instance GHC.Classes.Ord Data.Geo.Coordinate.Minutes.Minutes instance GHC.Classes.Eq Data.Geo.Coordinate.Minutes.Minutes instance Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Minutes.Minutes instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Minutes.AsMinutes p f GHC.Types.Int module Data.Geo.Coordinate.DegreesLongitude data DegreesLongitude class AsDegreesLongitude p f s _DegreesLongitude :: AsDegreesLongitude p f s => Optic' p f s DegreesLongitude -- | Setting a value within the range -180 and 180 using -- modulo arithmetic. -- --
--   >>> modDegreesLongitude 7
--   DegreesLongitude 7
--   
-- --
--   >>> modDegreesLongitude 0
--   DegreesLongitude 0
--   
-- --
--   >>> modDegreesLongitude 180
--   DegreesLongitude 180
--   
-- --
--   >>> modDegreesLongitude (-180)
--   DegreesLongitude (-180)
--   
-- --
--   >>> modDegreesLongitude 1
--   DegreesLongitude 1
--   
-- --
--   >>> modDegreesLongitude 179
--   DegreesLongitude 179 
--   
-- --
--   >>> modDegreesLongitude 181
--   DegreesLongitude (-179)
--   
-- --
--   >>> modDegreesLongitude (-181)
--   DegreesLongitude 179
--   
-- --
--   >>> modDegreesLongitude 600
--   DegreesLongitude (-120)
--   
-- --
--   >>> modDegreesLongitude (-600)
--   DegreesLongitude 120
--   
modDegreesLongitude :: Int -> DegreesLongitude -- | The degrees longitude that is symmetrical around the prime meridian. -- --
--   >>> antipodeDegreesLongitude # modDegreesLongitude 30
--   DegreesLongitude (-30)
--   
-- --
--   >>> antipodeDegreesLongitude # modDegreesLongitude 100
--   DegreesLongitude (-100)
--   
-- --
--   >>> antipodeDegreesLongitude # modDegreesLongitude 190
--   DegreesLongitude 170
--   
-- --
--   >>> antipodeDegreesLongitude # modDegreesLongitude 0
--   DegreesLongitude 0
--   
antipodeDegreesLongitude :: Iso' DegreesLongitude DegreesLongitude instance GHC.Show.Show Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance GHC.Classes.Ord Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance GHC.Classes.Eq Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f GHC.Types.Int module Data.Geo.Coordinate.Longitude data Longitude class AsLongitude p f s _Longitude :: AsLongitude p f s => Optic' p f s Longitude -- | Setting a longitude using modulo arithmetic. -- --
--   >>> modLongitude 20 20 20
--   Longitude (DegreesLongitude 20) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 20 20 (-20)
--   Longitude (DegreesLongitude 20) (Minutes 19) (Seconds 40.0000)
--   
-- --
--   >>> modLongitude 20 20 80
--   Longitude (DegreesLongitude 20) (Minutes 21) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 20 80 20
--   Longitude (DegreesLongitude 21) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 20 80 80
--   Longitude (DegreesLongitude 21) (Minutes 21) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 20 80 (-20)
--   Longitude (DegreesLongitude 21) (Minutes 19) (Seconds 40.0000)
--   
-- --
--   >>> modLongitude 200 20 20
--   Longitude (DegreesLongitude (-160)) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 200 20 80
--   Longitude (DegreesLongitude (-160)) (Minutes 21) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 200 80 20
--   Longitude (DegreesLongitude (-159)) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 200 20 (-20)
--   Longitude (DegreesLongitude (-160)) (Minutes 19) (Seconds 40.0000)
--   
-- --
--   >>> modLongitude 200 (-20) (-20)
--   Longitude (DegreesLongitude (-161)) (Minutes 39) (Seconds 40.0000)
--   
-- --
--   >>> modLongitude 200 (-80) (-20)
--   Longitude (DegreesLongitude (-162)) (Minutes 39) (Seconds 40.0000)
--   
-- --
--   >>> modLongitude 20 20 3620
--   Longitude (DegreesLongitude 21) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 20 20 (-3580)
--   Longitude (DegreesLongitude 19) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 200 20 3620
--   Longitude (DegreesLongitude (-159)) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLongitude 200 20 (-3580)
--   Longitude (DegreesLongitude (-161)) (Minutes 20) (Seconds 20.0000)
--   
modLongitude :: Int -> Int -> Double -> Longitude -- | The longitude that is symmetrical around the prime meridian. -- --
--   >>> fmap (\x -> antipodeLongitude # x) (do d <- (7 :: Int) ^? _DegreesLongitude; m <- (7 :: Int) ^? _Minutes; s <- (7 :: Double) ^? _Seconds; (d, m, s) ^? _Longitude :: Maybe Longitude)
--   Just (Longitude (DegreesLongitude (-7)) (Minutes 7) (Seconds 7.0000))
--   
antipodeLongitude :: Iso' Longitude Longitude instance GHC.Show.Show Data.Geo.Coordinate.Longitude.Longitude instance GHC.Classes.Ord Data.Geo.Coordinate.Longitude.Longitude instance GHC.Classes.Eq Data.Geo.Coordinate.Longitude.Longitude instance Data.Geo.Coordinate.Longitude.AsLongitude p f Data.Geo.Coordinate.Longitude.Longitude instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Longitude.AsLongitude p f (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Longitude.AsLongitude p f GHC.Types.Double instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f Data.Geo.Coordinate.Longitude.Longitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Longitude.Longitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Longitude.Longitude module Data.Geo.Coordinate.DegreesLatitude data DegreesLatitude class AsDegreesLatitude p f s _DegreesLatitude :: AsDegreesLatitude p f s => Optic' p f s DegreesLatitude -- | Setting a value within the range -90 and 90 using -- modulo arithmetic. -- --
--   >>> modDegreesLatitude 7
--   DegreesLatitude 7
--   
-- --
--   >>> modDegreesLatitude 0
--   DegreesLatitude 0
--   
-- --
--   >>> modDegreesLatitude 90
--   DegreesLatitude 90
--   
-- --
--   >>> modDegreesLatitude (-90)
--   DegreesLatitude (-90)
--   
-- --
--   >>> modDegreesLatitude 1
--   DegreesLatitude 1
--   
-- --
--   >>> modDegreesLatitude 89
--   DegreesLatitude 89 
--   
-- --
--   >>> modDegreesLatitude 91
--   DegreesLatitude (-89)
--   
-- --
--   >>> modDegreesLatitude (-91)
--   DegreesLatitude 89
--   
-- --
--   >>> modDegreesLatitude 300
--   DegreesLatitude (-60)
--   
-- --
--   >>> modDegreesLatitude (-300)
--   DegreesLatitude 60
--   
modDegreesLatitude :: Int -> DegreesLatitude -- | The degrees latitude that is symmetrical around the equator. -- --
--   >>> antipodeDegreesLatitude # modDegreesLatitude 30
--   DegreesLatitude (-30)
--   
-- --
--   >>> antipodeDegreesLatitude # modDegreesLatitude 80
--   DegreesLatitude (-80)
--   
-- --
--   >>> antipodeDegreesLatitude # modDegreesLatitude 110
--   DegreesLatitude 70
--   
-- --
--   >>> antipodeDegreesLatitude # modDegreesLatitude 0
--   DegreesLatitude 0
--   
antipodeDegreesLatitude :: Iso' DegreesLatitude DegreesLatitude instance GHC.Show.Show Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance GHC.Classes.Ord Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance GHC.Classes.Eq Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f GHC.Types.Int module Data.Geo.Coordinate.Latitude data Latitude class AsLatitude p f s _Latitude :: AsLatitude p f s => Optic' p f s Latitude -- | Setting a latitude using modulo arithmetic. -- --
--   >>> modLatitude 20 20 20
--   Latitude (DegreesLatitude 20) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 20 20 (-20)
--   Latitude (DegreesLatitude 20) (Minutes 19) (Seconds 40.0000)
--   
-- --
--   >>> modLatitude 20 20 80
--   Latitude (DegreesLatitude 20) (Minutes 21) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 20 80 20
--   Latitude (DegreesLatitude 21) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 20 80 80
--   Latitude (DegreesLatitude 21) (Minutes 21) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 20 80 (-20)
--   Latitude (DegreesLatitude 21) (Minutes 19) (Seconds 40.0000)
--   
-- --
--   >>> modLatitude 110 20 20
--   Latitude (DegreesLatitude (-70)) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 110 20 80
--   Latitude (DegreesLatitude (-70)) (Minutes 21) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 110 80 20
--   Latitude (DegreesLatitude (-69)) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 110 20 (-20)
--   Latitude (DegreesLatitude (-70)) (Minutes 19) (Seconds 40.0000)
--   
-- --
--   >>> modLatitude 110 (-20) (-20)
--   Latitude (DegreesLatitude (-71)) (Minutes 39) (Seconds 40.0000)
--   
-- --
--   >>> modLatitude 110 (-80) (-20)
--   Latitude (DegreesLatitude (-72)) (Minutes 39) (Seconds 40.0000)
--   
-- --
--   >>> modLatitude 20 20 3620
--   Latitude (DegreesLatitude 21) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 20 20 (-3580)
--   Latitude (DegreesLatitude 19) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 110 20 3620
--   Latitude (DegreesLatitude (-69)) (Minutes 20) (Seconds 20.0000)
--   
-- --
--   >>> modLatitude 110 20 (-3580)
--   Latitude (DegreesLatitude (-71)) (Minutes 20) (Seconds 20.0000)
--   
modLatitude :: Int -> Int -> Double -> Latitude -- | The latitude that is symmetrical around the equator. -- --
--   >>> fmap (\x -> antipodeLatitude # x) (do d <- (7 :: Int) ^? _DegreesLatitude; m <- (7 :: Int) ^? _Minutes; s <- (7 :: Double) ^? _Seconds; (d, m, s) ^? _Latitude :: Maybe Latitude)
--   Just (Latitude (DegreesLatitude (-7)) (Minutes 7) (Seconds 7.0000))
--   
antipodeLatitude :: Iso' Latitude Latitude instance GHC.Show.Show Data.Geo.Coordinate.Latitude.Latitude instance GHC.Classes.Ord Data.Geo.Coordinate.Latitude.Latitude instance GHC.Classes.Eq Data.Geo.Coordinate.Latitude.Latitude instance Data.Geo.Coordinate.Latitude.AsLatitude p f Data.Geo.Coordinate.Latitude.Latitude instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Latitude.AsLatitude p f (Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Latitude.AsLatitude p f GHC.Types.Double instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f Data.Geo.Coordinate.Latitude.Latitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Latitude.Latitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Latitude.Latitude module Data.Geo.Coordinate.Coordinate data Coordinate class AsCoordinate p f s _Coordinate :: AsCoordinate p f s => Optic' p f s Coordinate latitudeMinutes :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Minutes latitudeSeconds :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Seconds longitudeMinutes :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Minutes longitudeSeconds :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Seconds -- | Build a coordinate from a latitude and longitude. (.#.) :: (AsLatitude (->) (Const Latitude) lat, AsLongitude (->) (Const Longitude) lon) => lat -> lon -> Coordinate -- | Build a coordinate from a fractional latitude and fractional -- longitude. Fails if either are out of range. (<°>) :: Double -> Double -> Maybe Coordinate antipode :: Iso' Coordinate Coordinate instance GHC.Show.Show Data.Geo.Coordinate.Coordinate.Coordinate instance GHC.Classes.Ord Data.Geo.Coordinate.Coordinate.Coordinate instance GHC.Classes.Eq Data.Geo.Coordinate.Coordinate.Coordinate instance Data.Geo.Coordinate.Coordinate.AsCoordinate p f Data.Geo.Coordinate.Coordinate.Coordinate instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Latitude.Latitude, Data.Geo.Coordinate.Longitude.Longitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Longitude.Longitude, Data.Geo.Coordinate.Latitude.Latitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), Data.Geo.Coordinate.Longitude.Longitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Longitude.Longitude, (Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Latitude.Latitude, (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), Data.Geo.Coordinate.Latitude.Latitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), (Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (GHC.Types.Double, GHC.Types.Double) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Latitude.Latitude, GHC.Types.Double) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (GHC.Types.Double, Data.Geo.Coordinate.Longitude.Longitude) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), GHC.Types.Double) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (GHC.Types.Double, (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Latitude.AsLatitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Longitude.AsLongitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Applicative f) => Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Applicative f) => Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Coordinate.Coordinate module Data.Geo.Coordinate