linear-geo-0.1.0.0: Geographic coordinates, built on the linear package.
CopyrightTravis Whitaker 2023
LicenseMIT
Maintainerpi.boy.travis@gmail.com
StabilityProvisional
PortabilityPortable (Windows, POSIX)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Linear.Geo.PlaneAngle

Description

Types for dealing with different representations of angles in the plane.

Synopsis

Documentation

class PlaneAngle ang where Source #

Plane angles.

Methods

normalizeAngle :: (Floating a, Real a) => ang a -> ang a Source #

toRadians :: (Floating a, Real a) => ang a -> Radians a Source #

Convert the angle to radians.

fromRadians :: (Floating a, Real a) => Radians a -> ang a Source #

Convert the angle from radians.

Instances

Instances details
PlaneAngle DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

normalizeAngle :: (Floating a, Real a) => DM a -> DM a Source #

toRadians :: (Floating a, Real a) => DM a -> Radians a Source #

fromRadians :: (Floating a, Real a) => Radians a -> DM a Source #

PlaneAngle DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

normalizeAngle :: (Floating a, Real a) => DMS a -> DMS a Source #

toRadians :: (Floating a, Real a) => DMS a -> Radians a Source #

fromRadians :: (Floating a, Real a) => Radians a -> DMS a Source #

PlaneAngle Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

PlaneAngle Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

newtype Radians a Source #

A quantity representing a plane angle that satisfies the equation S = r * a where r is the radius of a circle, a is the measure of some angle subtending the circle, and S is the length of the subtended arc.

Constructors

Radians a 

Instances

Instances details
MonadFix Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mfix :: (a -> Radians a) -> Radians a #

MonadZip Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mzip :: Radians a -> Radians b -> Radians (a, b) #

mzipWith :: (a -> b -> c) -> Radians a -> Radians b -> Radians c #

munzip :: Radians (a, b) -> (Radians a, Radians b) #

Foldable Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fold :: Monoid m => Radians m -> m #

foldMap :: Monoid m => (a -> m) -> Radians a -> m #

foldMap' :: Monoid m => (a -> m) -> Radians a -> m #

foldr :: (a -> b -> b) -> b -> Radians a -> b #

foldr' :: (a -> b -> b) -> b -> Radians a -> b #

foldl :: (b -> a -> b) -> b -> Radians a -> b #

foldl' :: (b -> a -> b) -> b -> Radians a -> b #

foldr1 :: (a -> a -> a) -> Radians a -> a #

foldl1 :: (a -> a -> a) -> Radians a -> a #

toList :: Radians a -> [a] #

null :: Radians a -> Bool #

length :: Radians a -> Int #

elem :: Eq a => a -> Radians a -> Bool #

maximum :: Ord a => Radians a -> a #

minimum :: Ord a => Radians a -> a #

sum :: Num a => Radians a -> a #

product :: Num a => Radians a -> a #

Traversable Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

traverse :: Applicative f => (a -> f b) -> Radians a -> f (Radians b) #

sequenceA :: Applicative f => Radians (f a) -> f (Radians a) #

mapM :: Monad m => (a -> m b) -> Radians a -> m (Radians b) #

sequence :: Monad m => Radians (m a) -> m (Radians a) #

Applicative Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

pure :: a -> Radians a #

(<*>) :: Radians (a -> b) -> Radians a -> Radians b #

liftA2 :: (a -> b -> c) -> Radians a -> Radians b -> Radians c #

(*>) :: Radians a -> Radians b -> Radians b #

(<*) :: Radians a -> Radians b -> Radians a #

Functor Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fmap :: (a -> b) -> Radians a -> Radians b #

(<$) :: a -> Radians b -> Radians a #

Monad Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(>>=) :: Radians a -> (a -> Radians b) -> Radians b #

(>>) :: Radians a -> Radians b -> Radians b #

return :: a -> Radians a #

Distributive Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

distribute :: Functor f => f (Radians a) -> Radians (f a) #

collect :: Functor f => (a -> Radians b) -> f a -> Radians (f b) #

distributeM :: Monad m => m (Radians a) -> Radians (m a) #

collectM :: Monad m => (a -> Radians b) -> m a -> Radians (m b) #

PlaneAngle Radians Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Data a => Data (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Radians a -> c (Radians a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Radians a) #

toConstr :: Radians a -> Constr #

dataTypeOf :: Radians a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Radians a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Radians a)) #

gmapT :: (forall b. Data b => b -> b) -> Radians a -> Radians a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Radians a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Radians a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Radians a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Radians a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Radians a -> m (Radians a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Radians a -> m (Radians a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Radians a -> m (Radians a) #

Bounded a => Bounded (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Floating a => Floating (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

pi :: Radians a #

exp :: Radians a -> Radians a #

log :: Radians a -> Radians a #

sqrt :: Radians a -> Radians a #

(**) :: Radians a -> Radians a -> Radians a #

logBase :: Radians a -> Radians a -> Radians a #

sin :: Radians a -> Radians a #

cos :: Radians a -> Radians a #

tan :: Radians a -> Radians a #

asin :: Radians a -> Radians a #

acos :: Radians a -> Radians a #

atan :: Radians a -> Radians a #

sinh :: Radians a -> Radians a #

cosh :: Radians a -> Radians a #

tanh :: Radians a -> Radians a #

asinh :: Radians a -> Radians a #

acosh :: Radians a -> Radians a #

atanh :: Radians a -> Radians a #

log1p :: Radians a -> Radians a #

expm1 :: Radians a -> Radians a #

log1pexp :: Radians a -> Radians a #

log1mexp :: Radians a -> Radians a #

RealFloat a => RealFloat (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Generic (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Associated Types

type Rep (Radians a) :: Type -> Type #

Methods

from :: Radians a -> Rep (Radians a) x #

to :: Rep (Radians a) x -> Radians a #

Num a => Num (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(+) :: Radians a -> Radians a -> Radians a #

(-) :: Radians a -> Radians a -> Radians a #

(*) :: Radians a -> Radians a -> Radians a #

negate :: Radians a -> Radians a #

abs :: Radians a -> Radians a #

signum :: Radians a -> Radians a #

fromInteger :: Integer -> Radians a #

Fractional a => Fractional (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(/) :: Radians a -> Radians a -> Radians a #

recip :: Radians a -> Radians a #

fromRational :: Rational -> Radians a #

Real a => Real (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

toRational :: Radians a -> Rational #

RealFrac a => RealFrac (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

properFraction :: Integral b => Radians a -> (b, Radians a) #

truncate :: Integral b => Radians a -> b #

round :: Integral b => Radians a -> b #

ceiling :: Integral b => Radians a -> b #

floor :: Integral b => Radians a -> b #

Show a => Show (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

showsPrec :: Int -> Radians a -> ShowS #

show :: Radians a -> String #

showList :: [Radians a] -> ShowS #

NFData a => NFData (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

rnf :: Radians a -> () #

Eq a => Eq (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(==) :: Radians a -> Radians a -> Bool #

(/=) :: Radians a -> Radians a -> Bool #

Ord a => Ord (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

compare :: Radians a -> Radians a -> Ordering #

(<) :: Radians a -> Radians a -> Bool #

(<=) :: Radians a -> Radians a -> Bool #

(>) :: Radians a -> Radians a -> Bool #

(>=) :: Radians a -> Radians a -> Bool #

max :: Radians a -> Radians a -> Radians a #

min :: Radians a -> Radians a -> Radians a #

type Rep (Radians a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

type Rep (Radians a) = D1 ('MetaData "Radians" "Linear.Geo.PlaneAngle" "linear-geo-0.1.0.0-LxCVplq22GGCkRzZB0XgZk" 'True) (C1 ('MetaCons "Radians" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype Degrees a Source #

One degree is pi / 180 radians.

Constructors

Degrees a 

Instances

Instances details
MonadFix Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mfix :: (a -> Degrees a) -> Degrees a #

MonadZip Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mzip :: Degrees a -> Degrees b -> Degrees (a, b) #

mzipWith :: (a -> b -> c) -> Degrees a -> Degrees b -> Degrees c #

munzip :: Degrees (a, b) -> (Degrees a, Degrees b) #

Foldable Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fold :: Monoid m => Degrees m -> m #

foldMap :: Monoid m => (a -> m) -> Degrees a -> m #

foldMap' :: Monoid m => (a -> m) -> Degrees a -> m #

foldr :: (a -> b -> b) -> b -> Degrees a -> b #

foldr' :: (a -> b -> b) -> b -> Degrees a -> b #

foldl :: (b -> a -> b) -> b -> Degrees a -> b #

foldl' :: (b -> a -> b) -> b -> Degrees a -> b #

foldr1 :: (a -> a -> a) -> Degrees a -> a #

foldl1 :: (a -> a -> a) -> Degrees a -> a #

toList :: Degrees a -> [a] #

null :: Degrees a -> Bool #

length :: Degrees a -> Int #

elem :: Eq a => a -> Degrees a -> Bool #

maximum :: Ord a => Degrees a -> a #

minimum :: Ord a => Degrees a -> a #

sum :: Num a => Degrees a -> a #

product :: Num a => Degrees a -> a #

Traversable Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

traverse :: Applicative f => (a -> f b) -> Degrees a -> f (Degrees b) #

sequenceA :: Applicative f => Degrees (f a) -> f (Degrees a) #

mapM :: Monad m => (a -> m b) -> Degrees a -> m (Degrees b) #

sequence :: Monad m => Degrees (m a) -> m (Degrees a) #

Applicative Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

pure :: a -> Degrees a #

(<*>) :: Degrees (a -> b) -> Degrees a -> Degrees b #

liftA2 :: (a -> b -> c) -> Degrees a -> Degrees b -> Degrees c #

(*>) :: Degrees a -> Degrees b -> Degrees b #

(<*) :: Degrees a -> Degrees b -> Degrees a #

Functor Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fmap :: (a -> b) -> Degrees a -> Degrees b #

(<$) :: a -> Degrees b -> Degrees a #

Monad Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(>>=) :: Degrees a -> (a -> Degrees b) -> Degrees b #

(>>) :: Degrees a -> Degrees b -> Degrees b #

return :: a -> Degrees a #

Distributive Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

distribute :: Functor f => f (Degrees a) -> Degrees (f a) #

collect :: Functor f => (a -> Degrees b) -> f a -> Degrees (f b) #

distributeM :: Monad m => m (Degrees a) -> Degrees (m a) #

collectM :: Monad m => (a -> Degrees b) -> m a -> Degrees (m b) #

PlaneAngle Degrees Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Data a => Data (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Degrees a -> c (Degrees a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Degrees a) #

toConstr :: Degrees a -> Constr #

dataTypeOf :: Degrees a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Degrees a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Degrees a)) #

gmapT :: (forall b. Data b => b -> b) -> Degrees a -> Degrees a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Degrees a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Degrees a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Degrees a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Degrees a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Degrees a -> m (Degrees a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Degrees a -> m (Degrees a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Degrees a -> m (Degrees a) #

Bounded a => Bounded (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Floating a => Floating (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

pi :: Degrees a #

exp :: Degrees a -> Degrees a #

log :: Degrees a -> Degrees a #

sqrt :: Degrees a -> Degrees a #

(**) :: Degrees a -> Degrees a -> Degrees a #

logBase :: Degrees a -> Degrees a -> Degrees a #

sin :: Degrees a -> Degrees a #

cos :: Degrees a -> Degrees a #

tan :: Degrees a -> Degrees a #

asin :: Degrees a -> Degrees a #

acos :: Degrees a -> Degrees a #

atan :: Degrees a -> Degrees a #

sinh :: Degrees a -> Degrees a #

cosh :: Degrees a -> Degrees a #

tanh :: Degrees a -> Degrees a #

asinh :: Degrees a -> Degrees a #

acosh :: Degrees a -> Degrees a #

atanh :: Degrees a -> Degrees a #

log1p :: Degrees a -> Degrees a #

expm1 :: Degrees a -> Degrees a #

log1pexp :: Degrees a -> Degrees a #

log1mexp :: Degrees a -> Degrees a #

RealFloat a => RealFloat (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Generic (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Associated Types

type Rep (Degrees a) :: Type -> Type #

Methods

from :: Degrees a -> Rep (Degrees a) x #

to :: Rep (Degrees a) x -> Degrees a #

Num a => Num (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(+) :: Degrees a -> Degrees a -> Degrees a #

(-) :: Degrees a -> Degrees a -> Degrees a #

(*) :: Degrees a -> Degrees a -> Degrees a #

negate :: Degrees a -> Degrees a #

abs :: Degrees a -> Degrees a #

signum :: Degrees a -> Degrees a #

fromInteger :: Integer -> Degrees a #

Fractional a => Fractional (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(/) :: Degrees a -> Degrees a -> Degrees a #

recip :: Degrees a -> Degrees a #

fromRational :: Rational -> Degrees a #

Real a => Real (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

toRational :: Degrees a -> Rational #

RealFrac a => RealFrac (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

properFraction :: Integral b => Degrees a -> (b, Degrees a) #

truncate :: Integral b => Degrees a -> b #

round :: Integral b => Degrees a -> b #

ceiling :: Integral b => Degrees a -> b #

floor :: Integral b => Degrees a -> b #

Show a => Show (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

showsPrec :: Int -> Degrees a -> ShowS #

show :: Degrees a -> String #

showList :: [Degrees a] -> ShowS #

NFData a => NFData (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

rnf :: Degrees a -> () #

Eq a => Eq (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(==) :: Degrees a -> Degrees a -> Bool #

(/=) :: Degrees a -> Degrees a -> Bool #

Ord a => Ord (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

compare :: Degrees a -> Degrees a -> Ordering #

(<) :: Degrees a -> Degrees a -> Bool #

(<=) :: Degrees a -> Degrees a -> Bool #

(>) :: Degrees a -> Degrees a -> Bool #

(>=) :: Degrees a -> Degrees a -> Bool #

max :: Degrees a -> Degrees a -> Degrees a #

min :: Degrees a -> Degrees a -> Degrees a #

type Rep (Degrees a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

type Rep (Degrees a) = D1 ('MetaData "Degrees" "Linear.Geo.PlaneAngle" "linear-geo-0.1.0.0-LxCVplq22GGCkRzZB0XgZk" 'True) (C1 ('MetaCons "Degrees" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

data DMS a Source #

An angle represented as degrees, minutes, and seconds of arc.

Constructors

DMS 

Fields

Instances

Instances details
MonadFix DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mfix :: (a -> DMS a) -> DMS a #

MonadZip DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mzip :: DMS a -> DMS b -> DMS (a, b) #

mzipWith :: (a -> b -> c) -> DMS a -> DMS b -> DMS c #

munzip :: DMS (a, b) -> (DMS a, DMS b) #

Foldable DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fold :: Monoid m => DMS m -> m #

foldMap :: Monoid m => (a -> m) -> DMS a -> m #

foldMap' :: Monoid m => (a -> m) -> DMS a -> m #

foldr :: (a -> b -> b) -> b -> DMS a -> b #

foldr' :: (a -> b -> b) -> b -> DMS a -> b #

foldl :: (b -> a -> b) -> b -> DMS a -> b #

foldl' :: (b -> a -> b) -> b -> DMS a -> b #

foldr1 :: (a -> a -> a) -> DMS a -> a #

foldl1 :: (a -> a -> a) -> DMS a -> a #

toList :: DMS a -> [a] #

null :: DMS a -> Bool #

length :: DMS a -> Int #

elem :: Eq a => a -> DMS a -> Bool #

maximum :: Ord a => DMS a -> a #

minimum :: Ord a => DMS a -> a #

sum :: Num a => DMS a -> a #

product :: Num a => DMS a -> a #

Traversable DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

traverse :: Applicative f => (a -> f b) -> DMS a -> f (DMS b) #

sequenceA :: Applicative f => DMS (f a) -> f (DMS a) #

mapM :: Monad m => (a -> m b) -> DMS a -> m (DMS b) #

sequence :: Monad m => DMS (m a) -> m (DMS a) #

Applicative DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

pure :: a -> DMS a #

(<*>) :: DMS (a -> b) -> DMS a -> DMS b #

liftA2 :: (a -> b -> c) -> DMS a -> DMS b -> DMS c #

(*>) :: DMS a -> DMS b -> DMS b #

(<*) :: DMS a -> DMS b -> DMS a #

Functor DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fmap :: (a -> b) -> DMS a -> DMS b #

(<$) :: a -> DMS b -> DMS a #

Monad DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(>>=) :: DMS a -> (a -> DMS b) -> DMS b #

(>>) :: DMS a -> DMS b -> DMS b #

return :: a -> DMS a #

Distributive DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

distribute :: Functor f => f (DMS a) -> DMS (f a) #

collect :: Functor f => (a -> DMS b) -> f a -> DMS (f b) #

distributeM :: Monad m => m (DMS a) -> DMS (m a) #

collectM :: Monad m => (a -> DMS b) -> m a -> DMS (m b) #

PlaneAngle DMS Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

normalizeAngle :: (Floating a, Real a) => DMS a -> DMS a Source #

toRadians :: (Floating a, Real a) => DMS a -> Radians a Source #

fromRadians :: (Floating a, Real a) => Radians a -> DMS a Source #

Data a => Data (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DMS a -> c (DMS a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (DMS a) #

toConstr :: DMS a -> Constr #

dataTypeOf :: DMS a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (DMS a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (DMS a)) #

gmapT :: (forall b. Data b => b -> b) -> DMS a -> DMS a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DMS a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DMS a -> r #

gmapQ :: (forall d. Data d => d -> u) -> DMS a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DMS a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DMS a -> m (DMS a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DMS a -> m (DMS a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DMS a -> m (DMS a) #

Bounded a => Bounded (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

minBound :: DMS a #

maxBound :: DMS a #

Generic (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Associated Types

type Rep (DMS a) :: Type -> Type #

Methods

from :: DMS a -> Rep (DMS a) x #

to :: Rep (DMS a) x -> DMS a #

Show a => Show (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

showsPrec :: Int -> DMS a -> ShowS #

show :: DMS a -> String #

showList :: [DMS a] -> ShowS #

NFData a => NFData (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

rnf :: DMS a -> () #

Eq a => Eq (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(==) :: DMS a -> DMS a -> Bool #

(/=) :: DMS a -> DMS a -> Bool #

Ord a => Ord (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

compare :: DMS a -> DMS a -> Ordering #

(<) :: DMS a -> DMS a -> Bool #

(<=) :: DMS a -> DMS a -> Bool #

(>) :: DMS a -> DMS a -> Bool #

(>=) :: DMS a -> DMS a -> Bool #

max :: DMS a -> DMS a -> DMS a #

min :: DMS a -> DMS a -> DMS a #

type Rep (DMS a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

type Rep (DMS a) = D1 ('MetaData "DMS" "Linear.Geo.PlaneAngle" "linear-geo-0.1.0.0-LxCVplq22GGCkRzZB0XgZk" 'False) (C1 ('MetaCons "DMS" 'PrefixI 'True) (S1 ('MetaSel ('Just "dmsDeg") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: (S1 ('MetaSel ('Just "dmsMin") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Just "dmsSec") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a))))

dmsToDegrees :: Fractional a => DMS a -> Degrees a Source #

Convert DMS to Degrees. This does not normalize the angle.

degreesToDMS :: (Real a, Fractional a) => Degrees a -> DMS a Source #

Convert degrees to DMS. This does not normalize the angle.

data DM a Source #

An angle represented as degrees and minutes of arc.

Constructors

DM 

Fields

Instances

Instances details
MonadFix DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mfix :: (a -> DM a) -> DM a #

MonadZip DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

mzip :: DM a -> DM b -> DM (a, b) #

mzipWith :: (a -> b -> c) -> DM a -> DM b -> DM c #

munzip :: DM (a, b) -> (DM a, DM b) #

Foldable DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fold :: Monoid m => DM m -> m #

foldMap :: Monoid m => (a -> m) -> DM a -> m #

foldMap' :: Monoid m => (a -> m) -> DM a -> m #

foldr :: (a -> b -> b) -> b -> DM a -> b #

foldr' :: (a -> b -> b) -> b -> DM a -> b #

foldl :: (b -> a -> b) -> b -> DM a -> b #

foldl' :: (b -> a -> b) -> b -> DM a -> b #

foldr1 :: (a -> a -> a) -> DM a -> a #

foldl1 :: (a -> a -> a) -> DM a -> a #

toList :: DM a -> [a] #

null :: DM a -> Bool #

length :: DM a -> Int #

elem :: Eq a => a -> DM a -> Bool #

maximum :: Ord a => DM a -> a #

minimum :: Ord a => DM a -> a #

sum :: Num a => DM a -> a #

product :: Num a => DM a -> a #

Traversable DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

traverse :: Applicative f => (a -> f b) -> DM a -> f (DM b) #

sequenceA :: Applicative f => DM (f a) -> f (DM a) #

mapM :: Monad m => (a -> m b) -> DM a -> m (DM b) #

sequence :: Monad m => DM (m a) -> m (DM a) #

Applicative DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

pure :: a -> DM a #

(<*>) :: DM (a -> b) -> DM a -> DM b #

liftA2 :: (a -> b -> c) -> DM a -> DM b -> DM c #

(*>) :: DM a -> DM b -> DM b #

(<*) :: DM a -> DM b -> DM a #

Functor DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

fmap :: (a -> b) -> DM a -> DM b #

(<$) :: a -> DM b -> DM a #

Monad DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(>>=) :: DM a -> (a -> DM b) -> DM b #

(>>) :: DM a -> DM b -> DM b #

return :: a -> DM a #

Distributive DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

distribute :: Functor f => f (DM a) -> DM (f a) #

collect :: Functor f => (a -> DM b) -> f a -> DM (f b) #

distributeM :: Monad m => m (DM a) -> DM (m a) #

collectM :: Monad m => (a -> DM b) -> m a -> DM (m b) #

PlaneAngle DM Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

normalizeAngle :: (Floating a, Real a) => DM a -> DM a Source #

toRadians :: (Floating a, Real a) => DM a -> Radians a Source #

fromRadians :: (Floating a, Real a) => Radians a -> DM a Source #

Data a => Data (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DM a -> c (DM a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (DM a) #

toConstr :: DM a -> Constr #

dataTypeOf :: DM a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (DM a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (DM a)) #

gmapT :: (forall b. Data b => b -> b) -> DM a -> DM a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DM a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DM a -> r #

gmapQ :: (forall d. Data d => d -> u) -> DM a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DM a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DM a -> m (DM a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DM a -> m (DM a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DM a -> m (DM a) #

Bounded a => Bounded (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

minBound :: DM a #

maxBound :: DM a #

Generic (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Associated Types

type Rep (DM a) :: Type -> Type #

Methods

from :: DM a -> Rep (DM a) x #

to :: Rep (DM a) x -> DM a #

Show a => Show (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

showsPrec :: Int -> DM a -> ShowS #

show :: DM a -> String #

showList :: [DM a] -> ShowS #

NFData a => NFData (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

rnf :: DM a -> () #

Eq a => Eq (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

(==) :: DM a -> DM a -> Bool #

(/=) :: DM a -> DM a -> Bool #

Ord a => Ord (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

Methods

compare :: DM a -> DM a -> Ordering #

(<) :: DM a -> DM a -> Bool #

(<=) :: DM a -> DM a -> Bool #

(>) :: DM a -> DM a -> Bool #

(>=) :: DM a -> DM a -> Bool #

max :: DM a -> DM a -> DM a #

min :: DM a -> DM a -> DM a #

type Rep (DM a) Source # 
Instance details

Defined in Linear.Geo.PlaneAngle

type Rep (DM a) = D1 ('MetaData "DM" "Linear.Geo.PlaneAngle" "linear-geo-0.1.0.0-LxCVplq22GGCkRzZB0XgZk" 'False) (C1 ('MetaCons "DM" 'PrefixI 'True) (S1 ('MetaSel ('Just "dmDeg") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a) :*: S1 ('MetaSel ('Just "dmMin") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))

dmToDegrees :: Fractional a => DM a -> Degrees a Source #

Convert DM to degrees. This does not normalize the angle.

degreesToDM :: (Fractional a, Real a) => Degrees a -> DM a Source #

Convert degrees to DM. This does not normalize the angle.