-- | A coordinate on earth with an elevation in metres.
module Data.Geo.Position(
                          Position,
                          (|*|)
                        ) where

import Data.Geo.Coord
import Data.Geo.Elevation
import Data.Geo.Accessor.Coordinate
import Data.Geo.Accessor.Ele

data Position = Position Coord Elevation
  deriving (Eq, Show)

instance Coordinate Position where
  coordinate (Position x _) = x

instance Ele Position where
  ele (Position _ x) = x

-- | Construct a position with the given coordinate and elevation in metres.
(|*|) :: Coord -- ^ The coordinate.
         -> Elevation -- ^ The elevation.
         -> Position
(|*|) = Position