HC=h      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgNone Stuff with attributes $type that represents a path in ipe. An ipe-object. The main `thing' that defines the drawings The definition of a view # make active layer into an index ?  A single page in an ipe drawing Representing an ipe file A complete ipe file $Attribute Map %A new blank ipe drawing &A new empty page ,  !"#$%&hijkl'  !"#$%&'$ !"#%&    !"#$%&hijklNone mWrite ipe stuff 'IRepresent stuff that can be used as a coordinate in ipe. (similar to show/read) * Load an ipe drawing from a file +Store an ipe drawing in a file nPickler for ipe objects opickler for symbols (use) pPickler for paths q-Pickler that pickles an AMap into attributes r/Get the name and the value from this attribute sRead the matrix: 0 Our matrix has the following order of doubles:  012  345 "But ipe uses the following order:  024  135 4mtuvw'()*+xyz{|}~nopqrs'()*+*+'().mtuvw'()*+xyz{|}~nopqrsNone. Polygons 0 A polyline 2An ipe point. 4.create a default ipe point from a given point ,-./0123456 ,-./0123456 2340156./,-,-./0123456None72Stuff that we can store in a IpGeometryCollection 9shorhand for insert ;an ipe geometry collection 789:;<=>?@ABCD789:;<=>?@ABCD;<=>?@A789:BCD 789:;<=>?@ABCDNoneMLGiven a set of layers construct a view instance. The first layer is used as  active layer. OMMake a new layer, and add the elements in the given collection to this layer EFGHIJKLMNO EFGHIJKLMNO IJKLEFGHMNOEFGHIJKLMNONone ,Stuff to determine the type of an IpeObject P>Typeclass expressing which ipetypes we can convert into a IGC minimal implementation: toIGC T Get the IGC's with objects stored per page U Get the IGC'>s with objects stored per view (for all views in the drawing) V Get the IGC';s with objects stored per view (for all views in the page) Convert an ipe object into a X to a polyline  to a polygon ,helper to extract a point from an operation Converting from IpeTypes PQRSTUVWPQRSTUVWWPQRSTUVPQRSTUVWNoneConverting to IpeTypes Rconvert a sequence of points into a list of operations representing a linear Path :Express that this sequence of points represents a polygon ]1Add (the objects in this View) to the given page XYZ[\]XYZ[\]]\XYZ[ XYZ[\]None ^GA class expressing that we can run a computation on the data stored in H this part of the ipe drawing. A minimum implementation implements  replaceIGC and extend. _given a IGC, replace whatever I''m storing with the contents of the IGC `/add everything from the given IGC to whatever I'm storing allready. aKGiven a function, run the function on my contents, and replace my contents  with the results. bNGiven a function, run the computation on my contents, and replace my contents  with te results. cKGiven a function, run the computation on my contents, and store the result  together with the stuff I'm allready storing. dHshorthand to run a computation on a given drawing, and extend the input  drawing with the results e$Run a computation on an Ipe drawing fGLoad an drawing from a file path, and run the given computation on it. g runSimpleIO'9 f inPath outPath runs loads a drawing from inPath, runs H function f on it, extending the drawing with the result. The resulting " drawing is stored in as outPath. ^_`abcdefg ^_`abcdefg ^_`abcdefg ^_`abcdefg      !"##$%&'()*+,-./0123456789:;<=>?@ABBCDEFGHIJKKLMNNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ hipe-0.1.1.0Data.Geometry.Ipe.IpeTypesData.Geometry.Ipe.Pickle"Data.Geometry.Ipe.IpeGeometryTypesData.Geometry.Ipe.IGCData.Geometry.Ipe.IpeView!Data.Geometry.Ipe.ReadIpeGeometry"Data.Geometry.Ipe.WriteIpeGeometryData.Geometry.Ipe.IpeGeometry HasAttributesattrs updateWithgetAttrhasAttrWithValuehasAttr extractAttr Operation ClosePath ClosedSplineSplineArcToEllipseQCurveToCurveToLineToMoveTo IpeObjectUseIpeTextGroupPathViewDefinition layerNames activeLayerLayerDefinitionPagePreambleIpeStyle IpeDrawingIpepreamblestylespagesAMap emptyDrawing emptyPage CoordinatetoIpeOutfromSeq loadDrawing storeDrawingIpeMultiPolygon'IpeMultiPolygonIpeSimplePolygon'IpeSimplePolygon IpePolyline' IpePolyline IpePoint'IpePoint fromPoint toPolyLine fromPolyline IsIpeGeometryinsert<| insertAllIGCnamepoints polyLinessimplePolygons multiPolygonsempty singletonfromList ViewInstanceviewDeflayersLayerlayerDef layerContent viewInstanceaddLayerlayerIsConvertableToIGCtoIGC listToIGCperEntryperPageperViewperView'ipeViewsIsConvertableToIpeObject toIpeObject toIpeObjects toIpeObjects'addViewToDrawing addToPageRunWith replaceIGCextend runAndReplacerunWith runAndExtend runSimple runSimple' runSimpleIO runSimpleIO'$fHasAttributesIpeObject$fIsPoint2FunctorOperation$fIsPoint2FunctorIpeObject$fIsPoint2FunctorPage$fIsPoint2FunctorIpeDrawingIsIpeWriteable xpIpeObjectxpIpeUsexpPathxpVarTextAttrstoPair readMatrixtoOnlytoTexttoString textSepByxpLoadSettingsxpStoreSettings xpIpeDrawing xpIpeStylexpPagemarkWithlayersxpLayerDefinitionxpViewDefinitionxpGroup xpIpeText applyMatrixfromMap readPointreadPathOperationspathline operationmoveTolineToqCurveTocurveToclosepointcoordint matrixAttr opsString$fIsIpeWriteableOperation$fIsIpeWriteablePoint2'$fIsIpeWriteableMatrix3$fXmlPicklerViewDefinition$fXmlPicklerIpeDrawing$fXmlPicklerPage$fXmlPicklerIpeObject$fCoordinateRatio$fCoordinateDouble$fIsPolygonIpeMultiPolygon'$fHasAttributesIpeMultiPolygon'$fHasPointsIpeMultiPolygon'!$fIsPoint2FunctorIpeMultiPolygon'$fIsPolygonIpeSimplePolygon' $fHasAttributesIpeSimplePolygon'$fHasPointsIpeSimplePolygon'"$fIsPoint2FunctorIpeSimplePolygon'$fHasAttributesIpePolyline'$fHasPointsIpePolyline'$fIsPoint2FunctorIpePolyline'$fHasAttributesIpePoint'$fHasPointsIpePoint'$fIsPoint2FunctorIpePoint'merge$fIsIpeGeometryIpeMultiPolygon' $fIsIpeGeometryIpeSimplePolygon'$fIsIpeGeometryIpePolyline'$fIsIpeGeometryIpePoint' $fMonoidIGC GeometryType toPolyLine'toSimplePolygongetPoint$fIsConvertableToIGCIpeDrawingTOther TMultiPolygonTSimplePolygon TPolylinelayer' determineTypeisClosetoMultiPolygon$fIsConvertableToIGCIpeObject$fIsConvertableToIGCLayer $fIsConvertableToIGCViewInstance$fIsConvertableToIGCPage toLinearPath mkPolygonOps$fIsConvertableToIpeObjectIGC*$fIsConvertableToIpeObjectIpeMultiPolygon'+$fIsConvertableToIpeObjectIpeSimplePolygon'&$fIsConvertableToIpeObjectIpePolyline'#$fIsConvertableToIpeObjectIpePoint'$fRunWithIpeDrawing $fRunWithPage$fRunWithViewInstance$fRunWithLayer