<75T      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None( !"&-23459:;<=?@DFHIJLOQRT[\]^abcPos suggests where data points are placed on a grid across a range. Pos can also be thought about as whether the lower and upper points on the range are open or closed (plus the mid-point as an extra option). lower boundary of space upper boundary of space mid-point of the space distance between boundaries singleton spacezero-width test&determine whether an a is in the space$is a space contained within another? convex hull.null space, which can be interpreted as mempty"the containing space of a Foldable5project a data point from an old range to a new range project o n (lower o) == lower n project o n (upper o) == upper nproject a a == idcreate equally-spaced as from a space-create equally-spaced `Space a`s from a space     None( !"&-23459:;<=?@DFHIJLOQRT[\]^abc&Range is a newtype wrapped (a,a) tupleA tuple is the preferred concrete implementation of a Range, due to many libraries having substantial optimizations for tuples already (eg Vectoru). 'Pattern Synonyms' allow us to recover a constructor without the need for tuple syntax. >>> Range 0 1 Range 0 1theta is a bit like 1/infinityturn a range into n a/s pleasing to human sense and sensibility the a5s may well lie outside the original range as a result&The unital object derives from:width one = onemid zero = zero ie (-0.5,0.5)'Gtimes may well be some sort of affine projection lurking under the hood3hand here we recover the desired property of fmap'ing over both elements in contrast to the (a,) functor.6recovering the synonym name" !"#$%&'()*+,-./0123456! !"#$%&'()*+,-./0123456None&!"&-23459:;<=?@DFHIJLOQRT[\]^abc9A Pairfmap (+1) (Pair 1 2)Pair 2 3pure one :: Pair IntPair 1 1(*) <$> Pair 1 2 <*> pure 2Pair 2 4foldr (++) [] (Pair [1,2] [3])[1,2,3]6Pair "a" "pair" <> pure " " <> Pair "string" "mappend"Pair "a string" "pair mappend")| numerics >>> Pair 0 1 + zero Pair 0 1Pair 0 1 + Pair 2 3Pair 2 4Pair 1 1 - onePair 0 0Pair 0 1 * onePair 0 1Pair 0 1 / one Pair 0.0 1.0Pair 11 12 `mod` (pure 6)Pair 5 0%| module >>> Pair 1 2 .+ 3 Pair 4 5I| representations >>> distribute [Pair 1 2, Pair 3 4] Pair [1,3] [2,4]index (Pair 'l' 'r') LPair'l'LA pair of a's, implemented as a tuple, but api represented as a Pair of a's.Bring instancesGintegral instance,9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd9:;9:;+9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdNone'!"&-23459:;<=?@DFHIJLOQRT[\]^abci9a two-dimensional plane, implemented as a composite of a 9 of s.n2project a Rect from an old Rect range to a new oneijklmnopqrstuvwxyz{ijklmnijlkmnijklmnopqrstuvwxyz{      !"#$%&'()*+,-./0123456789:;<=>=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnlopqrstuvwxyz{|}~*numhask-range-0.1.0-I1DWEepfHM8IinfnHaT18f NumHask.Space NumHask.Range NumHask.Pair NumHask.RectPosOuterPosInnerPosLowerPosUpperPosMidPosSpaceElementGridloweruppermidwidth singletonsingularelementcontainsunionnulspaceprojectgrid gridSpace$fEqPosRangeRange' gridSensible $fMonoidRange $fSpaceRange$fMetricRangea$fNormedRangea $fSignedRange$fMultiplicativeGroupRange$fMultiplicativeRange $fMultiplicativeCommutativeRange$fMultiplicativeInvertibleRange $fMultiplicativeAssociativeRange$fMultiplicativeUnitalRange$fMultiplicativeMagmaRange $fNFDataRange$fArbitraryRange$fRepresentableRange$fDistributiveRange$fTraversable1Range$fTraversableRange$fFoldable1Range$fFoldableRange $fMonadRange$fApplicativeRange $fApplyRange$fFunctorRange $fShow1Range $fEq1Range $fShowRange $fEqRange$fGenericRangePairPair'$fBoundedFieldPair$fExpFieldPair $fFieldPair $fCRingPair$fSemiringPair $fRingPair$fDistributionPair $fMetricPaira $fEpsilonPair $fNormedPaira $fSignedPair$fIntegralPair$fMultiplicativeGroupPair$fMultiplicativeInvertiblePair$fMultiplicativePair$fMultiplicativeCommutativePair$fMultiplicativeAssociativePair$fMultiplicativeUnitalPair$fMultiplicativeMagmaPair$fAdditiveGroupPair$fAdditiveInvertiblePair$fAdditivePair$fAdditiveCommutativePair$fAdditiveAssociativePair$fAdditiveUnitalPair$fAdditiveMagmaPair$fArbitraryPair $fNFDataPair$fRepresentablePair$fDistributivePair $fMonoidPair$fTraversable1Pair$fTraversablePair$fFoldable1Pair$fFoldablePair $fMonadPair$fApplicativePair $fApplyPair $fShow1Pair $fEq1Pair $fFunctorPair $fShowPair$fEqPair $fOrdPair $fGenericPairRectRect'Rangescorners projectRect $fMonoidRect $fSpaceRect$fRepresentableRect$fDistributiveRect$fNormedRectPair $fSignedRect$fMultiplicativeGroupRect$fMultiplicativeInvertibleRect$fMultiplicativeRect$fMultiplicativeCommutativeRect$fMultiplicativeAssociativeRect$fMultiplicativeUnitalRect$fMultiplicativeMagmaRect $fShowRect$fEqRect $fFunctorRect $fApplyRect$fApplicativeRect$fFoldableRect$fFoldable1Rect$fTraversableRectthetatwohalf