úÎ!D7      !"#$%&'()*+,-./0123456Safe=?úyxSymmetry axis.yxA rotational direction.yxThe center of a rotation.fValid rotations can have either an exact coordinate as center or the top left corner of a coordinate. yx A 2D box.&A box might have zero width or height. yxA 2D coordinate.YX implements 7C. Integers are converted to their diagonal equivalent (for example 2 becomes YX 2 2).yx Decrement y.yx Decrement x.yx Increment x.yx Increment y.yx"Ordered array of the 4 base steps.yx5Ordered array of the 8 steps (4 base and 4 diagonal).yx1Constructs a box from its extremities, returning 8. if the points are not ordered appropriately.yxReturns the smallest  " containing all input coordinates.yxCReturns the top-left most point of the box (i.e. its lattice meet).yxGReturns the bottom-right most point of the box (i.e. its lattice join).yx3Returns the height of the box, always non-negative.yx2Returns the width of the box, always non-negative.yx/Returns all coordinates within the box, sorted.yx.Returns whether a given point is within a box.yx8Returns the box' coordinates, sorted and grouped by row.yxIntersects two boxes. yxRotates a coordinate.!yx2Flips coordinates symmetrically on the given axis."yx4Parses a newline delimited bytestring into an array.#yxGSerializes an array into a bytestring. This function is the reverse of ".yxTop-left point.yxBottom-right point.$  !"#$    !"#9      !"#$%&'()*+,-./0123456789:8;<=!yx-0.0.3.0-3ps1L5sDDBRBBiGkazf1ehData.Geometry.YXAxisAboveRowAtRow LeftOfColumnAtColumn Direction ClockwiseCounterClockwiseCenterAroundAroundTopLeftCornerBoxYXyxupleftrightdownsteps4steps8box boundingBoxtopLeft bottomRight boxHeightboxWidthboxRangeinBoxboxRowsboxIntersectionrotatemirrorbyteStringToArrayarrayToByteString $fLatticeYX$fIxYX$fNumYX$fEqYX$fOrdYX$fShowYX$fEqBox $fShowBox $fEqCenter $fOrdCenter $fShowCenter$fBoundedDirection $fEqDirection$fEnumDirection$fOrdDirection$fShowDirection$fEqAxis $fOrdAxis $fShowAxisbaseGHC.NumNum GHC.MaybeNothing