coordinate-0.2: src/Data/Geodetic/ECEF.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
module Data.Geodetic.ECEF(
ECEF(..)
, HasECEF(..)
) where
import Data.Geodetic.HasDoubles(HasDoubles(doubles))
import Data.Geodetic.XY(XY, HasXY(xY))
import Papa
data ECEF =
ECEF {
_xy ::
XY
, _z ::
Double
}
deriving (Eq, Ord, Show)
makeClassy ''ECEF
instance HasXY ECEF where
xY =
lens
(\(ECEF xy_ _) -> xy_)
(\(ECEF _ z_) xy_ -> ECEF xy_ z_)
instance HasDoubles ECEF where
doubles f (ECEF xy_ z_) =
ECEF <$>
doubles f xy_ <*>
f z_