-- | An ellipsoid with parameters such as flattening.moduleData.Geo.Ellipsoid(Ellipsoid,semiMajor,semiMinor,flattening,inverseFlattening,ellipsoid,semiMajorInverseF,semiMajorFlattening,wgs84,grs80,grs67,ans,wgs72,au1965,krasovsky1940,international1924,hayford1909,airy1830,everest1830,bessel1841,clarke1858,clarke1866,clarke1880)where-- | Ellipsoidal parameters. Some are derivable from others.dataEllipsoid=Ellipsoid{semiMajor::Double,-- ^ The semi major axis in metres.semiMinor::Double,-- ^ The semi minor axis in metres.flattening::Double,-- ^ The ellipsoidal flattening.inverseFlattening::Double-- ^ The inverse of the ellipsoidal flattening.}deriving(Eq,Show)-- | Construct an ellipsoid with the given parameters.ellipsoid::Double-- ^ The semi major axis in metres.->Double-- ^ The semi minor axis in metres.->Double-- ^ The ellipsoidal flattening.->Double-- ^ The inverse of the ellipsoidal flattening.->Ellipsoidellipsoid=Ellipsoid-- | Construct an ellipsoid using only a semi major axis and inverse flattening. Other parameters are computed.semiMajorInverseF::Double-- ^ The semi major axis.->Double-- ^ The inverse of the ellipsoidal flattening.->EllipsoidsemiMajorInverseFsi=letf=1/iinellipsoids((1.0-f)*s)fi-- | Construct an ellipsoid using only a semi major axis and flattening. Other parameters are computed.semiMajorFlattening::Double-- ^ The semi major axis.->Double-- ^ The ellipsoidal flattening.->EllipsoidsemiMajorFlatteningsf=ellipsoids((1.0-f)*s)f(1/f)wgs84::Ellipsoidwgs84=semiMajorInverseF6378137298.257223563grs80::Ellipsoidgrs80=semiMajorInverseF6378137298.257222101grs67::Ellipsoidgrs67=semiMajorInverseF6378160298.25ans::Ellipsoidans=semiMajorInverseF6378160298.25wgs72::Ellipsoidwgs72=semiMajorInverseF6378135298.26au1965::Ellipsoidau1965=semiMajorInverseF6378160298.25krasovsky1940::Ellipsoidkrasovsky1940=semiMajorInverseF6378245298.3international1924::Ellipsoidinternational1924=semiMajorInverseF6378388297hayford1909::Ellipsoidhayford1909=international1924airy1830::Ellipsoidairy1830=semiMajorInverseF6377563.4299.32everest1830::Ellipsoideverest1830=semiMajorInverseF6377276.3300.8bessel1841::Ellipsoidbessel1841=semiMajorInverseF6377397.2299.15clarke1858::Ellipsoidclarke1858=semiMajorInverseF6378293.645294.26clarke1866::Ellipsoidclarke1866=semiMajorInverseF6378206.4294.98clarke1880::Ellipsoidclarke1880=semiMajorInverseF6378249.145293.465