úÎ3-k      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijNone& !"&-23459:;<=?@DFHJLOQRT[\]^abc(overns where data points go on the rangea newtype wrapped (a, a) tuple alternative constructor lens for the fst of the tuple lens for the snd of the tuple mid-value lensrange width lensktheta is a bit like 1/infinity-determine whether a point is within the rangeis the range a singleton pointrange of a foldablešproject a data point from an old range to a new range project o n (view low o) == view low n project o n (view high o) == view high n project a a == id-turn a range into a list of n equally-spaced asturn a range into n a/s pleasing to human sense and sensibility the a5s may well lie outside the original range as a resulttake a list of (ascending) a‘s and make some (ascending) ranges based on OuterPos fromLinearSpace . linearSpace OuterPos == id linearSpace OuterPos . fromLinearSpace == id The unital object derives from:9view range one = one view mid zero = zero ie (-0.5,0.5)!Gtimes may well be some sort of affine projection lurking under the hood"natural interpretation of an a# as a `Range a` is a singular Range#,natural interpretation of a `Range a` as an a is the mid-point,]choosing the convex hull as plus seems like a natural choice, given the cute zero definition.0 klm !"#$%&'()*+,-  ) klm !"#$%&'()*+,-None%!"&-23459:;<=?@DFHJLOQRT[\]^abc 3+a two-dimensional plane, bounded by ranges.6«an alternative specification; as a 4-dim vector `V4 x y z w` where: - (x,y) is the lower left corner of a rectangle, and - (z,w) is the upper right corner of a rectangle8-determine whether a point is within the range9+is the range a singleton V2 (has zero area)>$the range Rect of a container of R2s?(range specialized to double traversables@>project a container of r2 points from an old Rect to a new oneA2project a Rect from an old Rect range to a new oneB1grid points on a rectange, divided up by a V2 IntCGa rectangle divided up by a V2 Int, making a list of smaller rectanglesMnatural interpretation of an a as an `Rect a`Va convex hull approach$3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV3456789:;<=>?@ABC3456=78:9;<>?@ABC"3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVNone$!"&-23459:;<=?@DFHJLOQRT[\]^abc[\]^_`anbopqrscdefgh[\]^_`abcdefgh^_`abc[\]fhgde[\]^_`anbopqrscdefght       !"#$%&'()*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abbcdefghijklmnopqrstuvw*numhask-range-0.0.3-1lqfObcVfUQ7OxLSk4dO8pNumHask.Histogram NumHask.Range NumHask.Rectbase Data.OldListinsert LinearPosOuterPosInnerPosLowerPosUpperPosMidPosRangerange_...lowhighmidwidth singletonelementsingular intersectioncontainsrangeproject linearSpacelinearSpaceSensiblefromLinearSpace$fMetricRangea$fNormedRangea $fSignedRange%$fMultiplicativeLeftCancellativeRange&$fMultiplicativeRightCancellativeRange$fMultiplicativeInvertibleRange $fMultiplicativeAssociativeRange$fMultiplicativeUnitalRange$fMultiplicativeMagmaRange$fAdditiveHomomorphicaRange$fAdditiveHomomorphicRangea$fAdditiveGroupRange$fAdditiveInvertibleRange $fMonoidRange$fSemigroupRange$fAdditiveRange$fAdditiveCommutativeRange$fAdditiveAssociativeRange$fAdditiveUnitalRange$fAdditiveMagmaRange$fArbitraryRange $fEqRange $fOrdRange $fShowRange$fFunctorRange $fEqLinearPosRectxyrectmidRect elementRect singularRect singletonRectintersectionRect containsRectcornersrangeR2rangeR2s projectR2 projectRectgridPgrid$fMetricRectV2$fNormedRectV2 $fSignedRect%$fMultiplicativeRightCancellativeRect$$fMultiplicativeLeftCancellativeRect$fMultiplicativeInvertibleRect$fMultiplicativeAssociativeRect$fMultiplicativeUnitalRect$fMultiplicativeMagmaRect$fAdditiveHomomorphicV2Rect$fAdditiveGroupRect$fAdditiveInvertibleRect $fMonoidRect$fSemigroupRect$fAdditiveRect$fAdditiveCommutativeRect$fAdditiveAssociativeRect$fAdditiveUnitalRect$fAdditiveMagmaRect $fShowRect$fEqRect $fOrdRect $fFunctorRect DealOvers IgnoreOvers IncludeOvers Histogram_cuts_valuesfreqfillinsertWinsertWsfromHistlabelshist$fShowHistogram $fEqHistogramthetatwohalffreq'countcountW countBoolhistMaphistMapW