module Data.Geodetic.Sphere(
Sphere(..)
, earthMean
, ellipsoidSphere
) where
import Control.Lens(makeWrapped, Prism', prism')
import Data.Eq(Eq((==)))
import Data.Maybe(Maybe(Just, Nothing))
import Data.Ord(Ord)
import Data.Geodetic.Ellipsoid(Ellipsoid(Ellipsoid))
import Prelude(Double, Show)
newtype Sphere =
Sphere Double
deriving (Eq, Ord, Show)
makeWrapped ''Sphere
earthMean ::
Sphere
earthMean =
Sphere 6367450
ellipsoidSphere ::
Prism'
Ellipsoid
Sphere
ellipsoidSphere =
prism'
(\(Sphere s) -> Ellipsoid s 1)
(\(Ellipsoid m f) -> if f == 1 then Just (Sphere m) else Nothing)