úÎ*u&]     None,A wrapper for two-dimensional vector types.  ! !unknownunstableJohn Lato <jwlato@gmail.com>NoneA starting point and duration A '(minimum,maximum)' pair  Define a Range over some domain  Convert a Range to a ' (min,max)' pair.  Generate a Span, '(start, distance)' from a   Generate a Range from a Span '(start, distance)'  A curried fromSpan  Create a Range from a ' (min,max)'  pair.   uses the " instance to construct a . For + multi-dimensional types, this probably isn't correct. For that case, see   A curried form of  fromBounds See the notes for  fromBounds. Get the range covered by a Range  Translate a  by the given amount. Create a range from a ' start,stop'& pair. For multi-dimensional ranges, : the resulting range will be the union of the two points. Calculate the union of two . See the notes for  unionRange. Calculate the union of two s, per-basis. RThe union is constructed by calculating the difference vector between two points, M performing a basis decomposition on that vector, performing comparisons and N adjustments on each basis vector, recomposing, and adding the result back to  the starting position. 4The advantage of this method is that it works on an # and  doesn't require a full $. It does require that the E affine space scalars are in a vector space, but this is more easily  satisfiable.  Restrict a  by applying a sub- mask. >For ranges with multiple dimensions, the masking is performed  independently for each basis. B If the range lies entirely outside the mask, the returned value  is 'Range rmin rmin' (per-basis) -Create a 2D range from two independent axes. Decompose a 2D range into X/Y axes. /Calculate the X extent of a 2D pointwise range /Calculate the Y extent of a 2D pointwise range True if a value lies inside a . Check if a value is in a Range, using " comparison. If "- is usable, this is likely to be faster than inRange. Compare a value to a Range . Returns EQ if the value is  inside the range, LT or GT if it' s outside. Uses Ord for comparison. %  restriction original Range &H'()*+,-#./0123456789:;<=$>?@ABCDEFGHIJKLMNO   % &P      !"#$%&'(&)*+,&'-&'.&'/&'0&'1&'2&'3&45&46&47&48&49&4:&4;&)<&)=&)>&)?&)@&)A&)B&)C&)D&)E&)F&GH&GI&GJ&GK&GL&GM&GN&GO&GP&GQ&GQRSTRSURSVRSWRSXYrange-space-0.1.0.3Data.RangeSpace.TwoDData.RangeSpaceD2VxAxisyAxisSpanBoundsRangetoBoundstoSpanfromSpan fromSpanC fromBounds fromBoundsC rangeStartrangeEndrangetranslateRangenewRange unionBounds unionRange maskRangerange2D fromRange2DextentXextentYinRange inOrdRange compareRange $fHasBasisD2V$fVectorSpaceD2V$fAffineSpaceD2V$fAdditiveGroupD2V$fNumD2Vghc-prim GHC.ClassesOrdvector-space-0.8.4Data.AffineSpace AffineSpaceData.VectorSpace VectorSpaceunRange$fApplicativeRangealerpdistance distanceSq.-^.+^.-.Diff Data.Basis recompose linearCombo decompose' decompose basisValueBasisHasBasisproject normalized magnitude magnitudeSqlerp^*^/*^Scalar<.> InnerSpaceData.AdditiveGroupinSum2inSumsumV^-^negateV^+^zeroV AdditiveGroupgetSumSumvector-space-points-0.1.2.0Data.AffineSpace.Point*.originunPointPPoint