Copyright  (c) 20132015 diagramslib team (see LICENSE) 

License  BSDstyle (see LICENSE) 
Maintainer  diagramsdiscuss@googlegroups.com 
Safe Haskell  None 
Language  Haskell2010 
"Located" things, i.e. things with a concrete location:
intuitively, Located a ~ (a, Point)
. Wrapping a translationally
invariant thing (e.g. a Segment
or Trail
) in Located
pins
it down to a particular location and makes it no longer
translationally invariant.
Documentation
"Located" things, i.e. things with a concrete location:
intuitively, Located a ~ (Point, a)
. Wrapping a translationally
invariant thing (e.g. a Segment
or Trail
) in Located
pins
it down to a particular location and makes it no longer
translationally invariant.
Located
is intentionally abstract. To construct Located
values, use at
. To destruct, use viewLoc
, unLoc
, or loc
.
To map, use mapLoc
.
Much of the utility of having a concrete type for the Located
concept lies in the type class instances we can give it. The
HasOrigin
, Transformable
, Enveloped
, Traced
, and
TrailLike
instances are particularly useful; see the documented
instances below for more information.
Instances
(Eq (V a (N a)), Eq a) => Eq (Located a) #  
(Ord (V a (N a)), Ord a) => Ord (Located a) #  
Defined in Diagrams.Located  
(Read (V a (N a)), Read a) => Read (Located a) #  
(Show (V a (N a)), Show a) => Show (Located a) #  
Generic (Located a) #  
(Serialize a, Serialize (V a (N a))) => Serialize (Located a) #  
Enveloped a => Juxtaposable (Located a) #  
Enveloped a => Enveloped (Located a) #  The envelope of a 
Defined in Diagrams.Located  
(Traced a, Num (N a)) => Traced (Located a) #  The trace of a 
Qualifiable a => Qualifiable (Located a) #  
(Additive (V a), Num (N a), Transformable a) => Transformable (Located a) #  Applying a transformation 
Defined in Diagrams.Located  
(Num (N a), Additive (V a)) => HasOrigin (Located a) # 

Defined in Diagrams.Located  
(Metric v, OrderedField n) => Reversing (Located (Trail v n)) #  Same as 
(Metric v, OrderedField n) => Reversing (Located (Trail' l v n)) #  Same as 
(InSpace v n a, Fractional n, HasArcLength a, Codomain a ~ v) => HasArcLength (Located a) #  
Defined in Diagrams.Located arcLengthBounded :: N (Located a) > Located a > Interval (N (Located a)) # arcLength :: N (Located a) > Located a > N (Located a) # stdArcLength :: Located a > N (Located a) # arcLengthToParam :: N (Located a) > Located a > N (Located a) > N (Located a) # stdArcLengthToParam :: Located a > N (Located a) > N (Located a) #  
(InSpace v n a, Fractional n, Parametric a, Sectionable a, Codomain a ~ v) => Sectionable (Located a) #  
(InSpace v n a, EndValues a, Codomain a ~ v) => EndValues (Located a) #  
(DomainBounds t, EndValues (Tangent t)) => EndValues (Tangent (Located t)) #  
DomainBounds a => DomainBounds (Located a) #  
Defined in Diagrams.Located domainLower :: Located a > N (Located a) # domainUpper :: Located a > N (Located a) #  
(InSpace v n a, Parametric a, Codomain a ~ v) => Parametric (Located a) #  
Parametric (Tangent t) => Parametric (Tangent (Located t)) #  
Alignable a => Alignable (Located a) #  
Defined in Diagrams.Located alignBy' :: (InSpace v n (Located a), Fractional n, HasOrigin (Located a)) => (v n > Located a > Point v n) > v n > n > Located a > Located a # defaultBoundary :: (V (Located a) ~ v, N (Located a) ~ n) => v n > Located a > Point v n # alignBy :: (InSpace v n (Located a), Fractional n, HasOrigin (Located a)) => v n > n > Located a > Located a #  
TrailLike t => TrailLike (Located t) # 

ToPath (Located [Segment Closed v n]) #  
ToPath (Located (Segment Closed v n)) #  
ToPath (Located (Trail v n)) #  
ToPath (Located (Trail' l v n)) #  
RealFloat n => HasQuery (Located (Trail V2 n)) Crossings #  
RealFloat n => HasQuery (Located (Trail' l V2 n)) Crossings #  
(LinearMappable a b, N a ~ N b, r ~ Located b) => AffineMappable (Located a) r #  
(LinearMappable a b, r ~ Located b) => LinearMappable (Located a) r #  
(Metric v, Metric u, OrderedField n, r ~ Located (Trail u n)) => Deformable (Located (Trail v n)) r #  
Each (Path v n) (Path v' n') (Located (Trail v n)) (Located (Trail v' n')) #  
Cons (Path v n) (Path v' n') (Located (Trail v n)) (Located (Trail v' n')) #  
Snoc (Path v n) (Path v' n') (Located (Trail v n)) (Located (Trail v' n')) #  
type Rep (Located a) #  
Defined in Diagrams.Located type Rep (Located a) = D1 (MetaData "Located" "Diagrams.Located" "diagramslib1.4.2.3Lx0qc4Qg35fL3SVMYWC9Cj" False) (C1 (MetaCons "Loc" PrefixI True) (S1 (MetaSel (Just "loc") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Point (V a) (N a))) :*: S1 (MetaSel (Just "unLoc") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))  
type V (Located a) #  
Defined in Diagrams.Located  
type N (Located a) #  
Defined in Diagrams.Located  
type Codomain (Located a) #  
Defined in Diagrams.Located 
at :: a > Point (V a) (N a) > Located a infix 5 #
Construct a Located a
from a value of type a
and a location.
at
is intended to be used infix, like x `at` origin
.
viewLoc :: Located a > (Point (V a) (N a), a) #
Deconstruct a Located a
into a location and a value of type
a
. viewLoc
can be especially useful in conjunction with the
ViewPatterns
extension.
mapLoc :: SameSpace a b => (a > b) > Located a > Located b #
Located
is not a Functor
, since changing the type could
change the type of the associated vector space, in which case the
associated location would no longer have the right type. mapLoc
has an extra constraint specifying that the vector space must
stay the same.
(Technically, one can say that for every vector space v
,
Located
is a littlef (endo)functor on the category of types
with associated vector space v
; but that is not covered by the
standard Functor
class.)