-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Functional MetaPost -- -- Functional MetaPost is a Haskell frontend to the MetaPost language by -- John Hobby. Users write their graphics as Haskell programs, which then -- emit MetaPost code that can be compiled into encapsulated PostScript -- files and smoothly included into e.g. LaTeX. -- -- A collection of useful examples how to use Functional MetaPost can be -- found in the user's manual at -- http://cryp.to/funcmp/legacy-doc/Manual_eng.ps. The document -- doesn't offer very much detail in terms of explanations, but the code -- samples are quite helpful. -- -- Further documentation can be found in the original thesis that -- describes the implementation. The text is available in German at -- http://cryp.to/funcmp/legacy-doc/Thesis.ps and in English at -- http://cryp.to/funcmp/legacy-doc/Thesis_eng.ps. -- -- Last but not least, there is a tutorial that offers many helpful -- examples available in German at -- http://cryp.to/funcmp/legacy-doc/Tutorial.ps and in English at -- http://cryp.to/funcmp/legacy-doc/Tutorial_eng.ps. @package funcmp @version 1.3 module FMP.PP data Doc empty :: Doc text :: String -> Doc char :: Char -> Doc double :: (Show a) => a -> Doc int :: (Show a) => a -> Doc parens :: Doc -> Doc brackets :: Doc -> Doc semi :: Doc comma :: Doc colon :: Doc space :: Doc equals :: Doc lparen :: Doc rparen :: Doc lbrack :: Doc rbrack :: Doc quotes :: Doc -> Doc doubleQuotes :: Doc -> Doc (<>) :: Doc -> Doc -> Doc (<+>) :: Doc -> Doc -> Doc hcat :: [Doc] -> Doc hsep :: [Doc] -> Doc ($$) :: Doc -> Doc -> Doc ($+$) :: Doc -> Doc -> Doc vcat :: [Doc] -> Doc punctuate :: Doc -> [Doc] -> [Doc] instance Show Doc module FMP.Types class HasMed a med :: (HasMed a) => Numeric -> a -> a -> a class HasDefault a default' :: (HasDefault a) => a data Dir C :: Dir N :: Dir NE :: Dir E :: Dir SE :: Dir S :: Dir SW :: Dir W :: Dir NW :: Dir data Pen DefaultPen :: Pen PenSquare :: (Numeric, Numeric) -> Numeric -> Pen PenCircle :: (Numeric, Numeric) -> Numeric -> Pen data Pattern DefaultPattern :: Pattern DashPattern :: [Double] -> Pattern data Equation NEquations :: [Numeric] -> Equation PEquations :: [Point] -> Equation Equations :: [Equation] -> Equation EquationCond :: Boolean -> Equation -> Equation -> Equation data Boolean Boolean :: Bool -> Boolean BoolNum :: Numeric -> BoolRelat -> Numeric -> Boolean BoolPnt :: Point -> BoolRelat -> Point -> Boolean BoolOr :: Boolean -> Boolean -> Boolean BoolAnd :: Boolean -> Boolean -> Boolean BoolNot :: Boolean -> Boolean data BoolRelat BoolEQ :: BoolRelat BoolL :: BoolRelat BoolLE :: BoolRelat BoolNE :: BoolRelat data Point PointPic' :: Int -> Dir -> Point PointVar' :: Int -> Int -> Point PointVarArray' :: Int -> Int -> Point PointTrans' :: Point -> [Int] -> Point PointVar :: Name -> Point PointVec :: (Numeric, Numeric) -> Point PointMediate :: Numeric -> Point -> Point -> Point PointDirection :: Numeric -> Point PointWhatever :: Point PointPPP :: FunPPP -> Point -> Point -> Point PointNMul :: Numeric -> Point -> Point PointNeg :: Point -> Point PointCond :: Boolean -> Point -> Point -> Point data Numeric NumericVar' :: Int -> Int -> Numeric NumericArray' :: Int -> Int -> Numeric NumericVar :: Name -> Numeric Numeric :: Double -> Numeric NumericWhatever :: Numeric NumericDist :: Point -> Point -> Numeric NumericMediate :: Numeric -> Numeric -> Numeric -> Numeric NumericPN :: FunPN -> Point -> Numeric NumericNN :: FunNN -> Numeric -> Numeric NumericNNN :: FunNNN -> Numeric -> Numeric -> Numeric NumericNsN :: FunNsN -> [Numeric] -> Numeric NumericCond :: Boolean -> Numeric -> Numeric -> Numeric data FunPPP PPPAdd :: FunPPP PPPSub :: FunPPP PPPDiv :: FunPPP data FunPN PNXPart :: FunPN PNYPart :: FunPN PNAngle :: FunPN data FunNN NNSinD :: FunNN NNCosD :: FunNN NNSqrt :: FunNN NNExp :: FunNN NNLog :: FunNN NNRound :: FunNN NNCeil :: FunNN NNFloor :: FunNN NNNeg :: FunNN data FunNNN NNNAdd :: FunNNN NNNSub :: FunNNN NNNMul :: FunNNN NNNDiv :: FunNNN NNNPyth :: FunNNN NNNPower :: FunNNN data FunNsN NsNMin :: FunNsN NsNMax :: FunNsN class HasRelax a relax :: (HasRelax a) => a class HasCond a cond :: (HasCond a) => Boolean -> a -> a -> a penSquare :: (Numeric, Numeric) -> Numeric -> Pen penCircle :: (Numeric, Numeric) -> Numeric -> Pen dashed :: Pattern dotted :: Pattern dashPattern :: [Double] -> Pattern dashPattern' :: [Double] -> Pattern boolean :: Bool -> Boolean equations :: [Equation] -> Equation vec :: (Numeric, Numeric) -> Point dir :: Numeric -> Point xy :: Point -> Point -> Point (.*) :: Numeric -> Point -> Point pi :: (Floating a) => a exp :: (Floating a) => a -> a log :: (Floating a) => a -> a sqrt :: (Floating a) => a -> a (**) :: (Floating a) => a -> a -> a sin :: (Floating a) => a -> a cos :: (Floating a) => a -> a tan :: (Floating a) => a -> a asin :: (Floating a) => a -> a acos :: (Floating a) => a -> a atan :: (Floating a) => a -> a sinh :: (Floating a) => a -> a cosh :: (Floating a) => a -> a tanh :: (Floating a) => a -> a asinh :: (Floating a) => a -> a acosh :: (Floating a) => a -> a atanh :: (Floating a) => a -> a pythAdd :: Numeric -> Numeric -> Numeric xpart :: Point -> Numeric ypart :: Point -> Numeric angle :: Point -> Numeric minimum' :: [Numeric] -> Numeric maximum' :: [Numeric] -> Numeric width :: (IsName a) => a -> Numeric height :: (IsName a) => a -> Numeric xdist :: Point -> Point -> Numeric ydist :: Point -> Point -> Numeric dist :: Point -> Point -> Numeric (.=) :: (IsEquation a) => a -> a -> Equation (.==) :: (IsBoolean a) => a -> a -> Boolean (./=) :: (IsBoolean a) => a -> a -> Boolean (.<) :: (IsBoolean a) => a -> a -> Boolean (.<=) :: (IsBoolean a) => a -> a -> Boolean equal :: (IsEquation a) => [a] -> Equation whatever :: (HasWhatever a) => a data Name NameInt :: Int -> Name NameStr :: String -> Name NameDir :: Dir -> Name Hier :: Name -> Name -> Name Global :: Name -> Name global :: (IsName a) => a -> Name ref :: (IsName a) => a -> Point var :: (IsName a) => a -> Numeric (<+) :: (IsName a, IsName b) => a -> b -> Name (<*) :: (IsName a) => Int -> a -> Name class IsName a toName :: (IsName a) => a -> Name toNameList :: (IsName a) => [a] -> Name instance Eq FunNsN instance Show FunNsN instance Read FunNsN instance Ord FunNsN instance Eq FunNNN instance Show FunNNN instance Read FunNNN instance Ord FunNNN instance Eq FunNN instance Show FunNN instance Read FunNN instance Ord FunNN instance Eq FunPN instance Show FunPN instance Read FunPN instance Ord FunPN instance Eq Numeric instance Show Numeric instance Read Numeric instance Ord Numeric instance Eq FunPPP instance Show FunPPP instance Read FunPPP instance Ord FunPPP instance Eq Point instance Show Point instance Read Point instance Ord Point instance Show Name instance Read Name instance Eq Name instance Ord Name instance Eq BoolRelat instance Show BoolRelat instance Read BoolRelat instance Ord BoolRelat instance Eq Boolean instance Show Boolean instance Read Boolean instance Ord Boolean instance Eq Equation instance Show Equation instance Read Equation instance Eq Pattern instance Show Pattern instance Read Pattern instance Eq Pen instance Show Pen instance Read Pen instance Eq Dir instance Read Dir instance Show Dir instance Enum Dir instance Ord Dir instance HasWhatever Numeric instance HasMed Numeric instance Real Numeric instance Enum Numeric instance Floating Numeric instance Fractional Numeric instance Num Numeric instance HasCond Numeric instance HasWhatever Point instance HasMed Point instance Num Point instance HasCond Point instance IsName Name instance (IsName a) => IsName [a] instance IsName Dir instance IsName Char instance IsName Int instance HasCond Equation instance Num Boolean instance IsBoolean Point instance IsBoolean Numeric instance IsEquation Point instance IsEquation Numeric instance HasDefault Pattern instance HasDefault Pen instance Fractional Pen instance Num Pen instance Num Dir module FMP.Term data Term Const :: Double -> Term Id :: String -> Term Add :: Term -> Term -> Term Sub :: Term -> Term -> Term Mul :: Term -> Term -> Term Div :: Term -> Term -> Term Neg :: Term -> Term Parens :: Term -> Term Pythagoras :: Term -> Term -> Term Power :: Term -> Term -> Term SinD :: Term -> Term CosD :: Term -> Term Sqrt :: Term -> Term Ln :: Term -> Term Exp :: Term -> Term Round :: Term -> Term Ceil :: Term -> Term Floor :: Term -> Term Angle :: Term -> Term XPart :: Term -> Term YPart :: Term -> Term Pair :: Term -> Term -> Term Max :: [Term] -> Term Min :: [Term] -> Term Identity :: Term CurrentPicture :: Term Pic :: String -> Term Infix :: Term -> String -> Term -> Term LLCorner :: Term -> Term URCorner :: Term -> Term Shifted :: Term -> Term -> Term Transform :: [Int] -> Term -> Term Transformed :: Term -> Term -> Term TransformedM :: Term -> Term -> Term -> Term -> Term -> Term -> Term Mediate :: Term -> Term -> Term -> Term Pos :: Int -> Int -> Term TDot :: String -> Dir -> Term IfElse :: Term -> Term -> Term -> Term VerbFunction :: String -> Term -> Term Dirop :: Term -> Term max' :: [Term] -> Term pair :: Term -> Term -> Term add :: Term -> Term -> Term sub :: Term -> Term -> Term mul :: Term -> Term -> Term instance Eq Term instance Show Term instance Read Term instance Fractional Term instance Num Term module FMP.File data Parameters Parameters :: String -> String -> String -> Double -> Double -> Double -> Double -> Bool -> String -> String -> Parameters mpBin :: Parameters -> String funcmpBin :: Parameters -> String funcmpRTS :: Parameters -> String defaultDX :: Parameters -> Double defaultDY :: Parameters -> Double textDX :: Parameters -> Double textDY :: Parameters -> Double newmp :: Parameters -> Bool prolog :: Parameters -> String epilog :: Parameters -> String fileExists :: String -> IO a -> (IOError -> IO a) -> IO a clearFile :: String -> IO a -> (IOError -> IO a) -> IO a getParameters :: IO Parameters instance Eq Parameters instance Read Parameters instance Show Parameters module FMP.Color data Color DefaultColor :: Color Color :: Double -> Double -> Double -> Color Graduate :: Color -> Color -> Double -> Int -> Color class HasColor a setColor :: (HasColor a) => Color -> a -> a setDefaultColor :: (HasColor a) => a -> a getColor :: (HasColor a) => a -> Color class HasBGColor a setBGColor :: (HasBGColor a) => Color -> a -> a setDefaultBGColor :: (HasBGColor a) => a -> a getBGColor :: (HasBGColor a) => a -> Color white :: Color black :: Color red :: Color green :: Color blue :: Color yellow :: Color cyan :: Color magenta :: Color grey :: Double -> Color color :: Double -> Double -> Double -> Color hsv2rgb :: (Double, Double, Double) -> Color graduateLow :: Color -> Color -> Double -> Color graduateMed :: Color -> Color -> Double -> Color graduateHigh :: Color -> Color -> Double -> Color graduate :: Color -> Color -> Double -> Int -> Color instance Eq Color instance Show Color instance Read Color instance Fractional Color instance Num Color module FMP.Picture (|-|) :: (IsPicture a, IsPicture b) => a -> b -> Picture (|||) :: (IsPicture a, IsPicture b) => a -> b -> Picture (|=|) :: (IsPicture a, IsPicture b) => a -> b -> Picture (||||) :: (IsPicture a, IsPicture b) => a -> b -> Picture (#) :: a -> (a -> b) -> b (.&.) :: (IsPath a, IsPath b) => a -> b -> Path (...) :: (IsPath a, IsPath b) => a -> b -> Path (.-.) :: (IsPath a, IsPath b) => a -> b -> Path (....) :: (IsPath a, IsPath b) => a -> b -> Path (.--.) :: (IsPath a, IsPath b) => a -> b -> Path class (Show a) => IsPicture a toPicture :: (IsPicture a) => a -> Picture toPictureList :: (IsPicture a) => [a] -> Picture class IsPath a toPath :: (IsPath a) => a -> Path toPathList :: (IsPath a) => [a] -> Path class IsArea a toArea :: (IsArea a) => a -> Area class HasPicture a fromPicture :: (HasPicture a, IsPicture b) => b -> a class HasName a setName :: (HasName a, IsName b) => b -> a -> a getNames :: (HasName a) => a -> [Name] class HasDXY a setDX :: (HasDXY a) => Numeric -> a -> a getDX :: (HasDXY a) => a -> Maybe Numeric setDY :: (HasDXY a) => Numeric -> a -> a getDY :: (HasDXY a) => a -> Maybe Numeric class HasExtent a setWidth :: (HasExtent a) => Numeric -> a -> a removeWidth :: (HasExtent a) => a -> a getWidth :: (HasExtent a) => a -> Maybe Numeric setHeight :: (HasExtent a) => Numeric -> a -> a removeHeight :: (HasExtent a) => a -> a getHeight :: (HasExtent a) => a -> Maybe Numeric class HasLabel a setLabel :: (HasLabel a, IsPicture b) => Double -> Dir -> b -> a -> a removeLabel :: (HasLabel a) => a -> a class HasPattern a setPattern :: (HasPattern a) => Pattern -> a -> a setDefaultPattern :: (HasPattern a) => a -> a getPattern :: (HasPattern a) => a -> Pattern class HasPen a setPen :: (HasPen a) => Pen -> a -> a setDefaultPen :: (HasPen a) => a -> a getPen :: (HasPen a) => a -> Pen class HasArrowHead a setArrowHead :: (HasArrowHead a) => ArrowHead -> a -> a removeArrowHead :: (HasArrowHead a) => a -> a getArrowHead :: (HasArrowHead a) => a -> Maybe ArrowHead setStartArrowHead :: (HasArrowHead a) => ArrowHead -> a -> a removeStartArrowHead :: (HasArrowHead a) => a -> a getStartArrowHead :: (HasArrowHead a) => a -> Maybe ArrowHead class HasStartEndCut a setStartCut :: (HasStartEndCut a, IsName b) => b -> a -> a removeStartCut :: (HasStartEndCut a) => a -> a setEndCut :: (HasStartEndCut a, IsName b) => b -> a -> a removeEndCut :: (HasStartEndCut a) => a -> a class HasStartEndDir a setStartAngle :: (HasStartEndDir a) => Numeric -> a -> a setEndAngle :: (HasStartEndDir a) => Numeric -> a -> a setStartCurl :: (HasStartEndDir a) => Numeric -> a -> a setEndCurl :: (HasStartEndDir a) => Numeric -> a -> a setStartVector :: (HasStartEndDir a) => Point -> a -> a setEndVector :: (HasStartEndDir a) => Point -> a -> a removeStartDir :: (HasStartEndDir a) => a -> a removeEndDir :: (HasStartEndDir a) => a -> a class HasJoin a setJoin :: (HasJoin a) => BasicJoin -> a -> a getJoin :: (HasJoin a) => a -> BasicJoin class HasShadow a setShadow :: (HasShadow a) => (Numeric, Numeric) -> a -> a clearShadow :: (HasShadow a) => a -> a getShadow :: (HasShadow a) => a -> Maybe (Numeric, Numeric) class HasLayer a setBack :: (HasLayer a) => a -> a setFront :: (HasLayer a) => a -> a getLayer :: (HasLayer a) => a -> Layer class HasConcat a (&) :: (HasConcat a) => a -> a -> a class IsHideable a hide :: (IsHideable a) => a -> a joinCat :: BasicJoin joinFree :: BasicJoin joinBounded :: BasicJoin joinStraight :: BasicJoin joinTense :: BasicJoin joinTension :: Tension -> BasicJoin joinTensions :: Tension -> Tension -> BasicJoin joinControl :: Point -> BasicJoin joinControls :: Point -> Point -> BasicJoin tension :: Numeric -> Tension tensionAtLeast :: Numeric -> Tension buildCycle :: Path -> Path -> Path transformPath :: Transformation -> Path -> Path mm :: Numeric pt :: Numeric dd :: Numeric bp :: Numeric cm :: Numeric pc :: Numeric cc :: Numeric inch :: Numeric up :: Point down :: Point left :: Point right :: Point fullcircle :: Path halfcircle :: Path quartercircle :: Path unitsquare :: Path enumPics :: (HasName a) => [a] -> [a] image :: BitDepth -> [String] -> Picture data Picture Attributes :: Attrib -> Picture -> Picture Overlay :: [Equation] -> (Maybe Int) -> [Picture] -> Picture Define :: [Equation] -> Picture -> Picture Frame :: FrameAttrib -> [Equation] -> Path -> Picture -> Picture Draw :: [Path] -> Picture -> Picture Fill :: [Area] -> Picture -> Picture Clip :: Path -> Picture -> Picture Empty :: Numeric -> Numeric -> Picture Tex :: String -> Picture Text :: String -> Picture BitLine :: Point -> BitDepth -> String -> Picture PTransform :: Transformation -> Picture -> Picture TrueBox :: Picture -> Picture data Layer Front :: Layer Back :: Layer data Transformation Transformation :: Numeric -> Numeric -> Numeric -> Numeric -> Numeric -> Numeric -> Transformation data BitDepth Depth1 :: BitDepth Depth8 :: BitDepth Depth24 :: BitDepth row :: (IsPicture a) => [a] -> Picture column :: (IsPicture a) => [a] -> Picture rowSepBy :: (IsPicture a) => Numeric -> [a] -> Picture columnSepBy :: (IsPicture a) => Numeric -> [a] -> Picture vspace :: Numeric -> Picture hspace :: Numeric -> Picture space :: Numeric -> Numeric -> Picture fill :: (IsPicture a, IsArea b) => [b] -> a -> Picture clip :: (IsPicture a) => Path -> a -> Picture draw :: (IsPicture a) => [Path] -> a -> Picture at :: (IsPicture a, IsPicture b) => Dir -> a -> b -> Picture label :: (IsPicture a, IsPicture b) => Dir -> a -> b -> Picture overlay :: (IsPicture a) => [Equation] -> [a] -> Picture overlay' :: (IsPicture a) => [Equation] -> Maybe Int -> [a] -> Picture ooalign :: (IsPicture a) => [a] -> Picture class HasDefine a define :: (HasDefine a) => [Equation] -> a -> a text :: String -> Picture tex :: String -> Picture math :: String -> Picture empty :: Picture setTrueBoundingBox :: (IsPicture a) => a -> Picture scale :: (IsPicture a) => Numeric -> a -> Picture rotate :: (IsPicture a) => Numeric -> a -> Picture transform :: (IsPicture a) => Transformation -> a -> Picture affine :: (Numeric, Numeric, Numeric, Numeric, Numeric, Numeric) -> Transformation shifted :: (Numeric, Numeric) -> Transformation rotated :: Numeric -> Transformation reflectedX :: Transformation reflectedY :: Transformation reflectX :: (IsPicture a) => a -> Picture reflectY :: (IsPicture a) => a -> Picture scaledX :: Numeric -> Transformation scaledY :: Numeric -> Transformation scaled :: Numeric -> Transformation skewedX :: Numeric -> Transformation skewX :: (IsPicture a) => Numeric -> a -> Picture skewedY :: Numeric -> Transformation skewY :: (IsPicture a) => Numeric -> a -> Picture line :: (IsPath a, IsPath b) => a -> b -> Path curve :: (IsPath a, IsPath b) => a -> b -> Path arrow :: (IsPath b, IsPath a) => a -> b -> Path cycle' :: Path lastNameIsDir :: Name -> Bool defaultArrowHead :: ArrowHead arrowHeadBig :: ArrowHead arrowHeadSize :: Double -> Double -> ArrowHead setArrowHeadStyle :: ArrowHeadStyle -> ArrowHead -> ArrowHead getArrowHeadStyle :: ArrowHead -> ArrowHeadStyle ahFilled :: ArrowHeadStyle ahLine :: ArrowHeadStyle data Attrib Attrib :: [Name] -> Color -> Color -> Attrib aNames :: Attrib -> [Name] aColor :: Attrib -> Color aBGColor :: Attrib -> Color stdAttrib :: Attrib data FrameAttrib FrameAttrib :: [Name] -> Color -> Color -> Pen -> Pattern -> Maybe (Numeric, Numeric) -> Bool -> FrameAttrib faNames :: FrameAttrib -> [Name] faColor :: FrameAttrib -> Color faBGColor :: FrameAttrib -> Color faPen :: FrameAttrib -> Pen faPattern :: FrameAttrib -> Pattern faShadow :: FrameAttrib -> Maybe (Numeric, Numeric) faVisible :: FrameAttrib -> Bool stdFrameAttrib :: FrameAttrib data PathElemDescr PathElemDescr :: Color -> Pen -> Maybe ArrowHead -> Maybe ArrowHead -> Pattern -> Bool -> Maybe CutPic -> Maybe CutPic -> Dir' -> Dir' -> BasicJoin -> [PathLabel] -> PathElemDescr peColor :: PathElemDescr -> Color pePen :: PathElemDescr -> Pen peArrowHead :: PathElemDescr -> Maybe ArrowHead peSArrowHead :: PathElemDescr -> Maybe ArrowHead pePattern :: PathElemDescr -> Pattern peVisible :: PathElemDescr -> Bool peStartCut :: PathElemDescr -> Maybe CutPic peEndCut :: PathElemDescr -> Maybe CutPic peStartDir :: PathElemDescr -> Dir' peEndDir :: PathElemDescr -> Dir' peJoin :: PathElemDescr -> BasicJoin peLabels :: PathElemDescr -> [PathLabel] stdPathElemDescr :: PathElemDescr data Path PathBuildCycle :: Path -> Path -> Path PathTransform :: Transformation -> Path -> Path PathPoint :: Point -> Path PathCycle :: Path PathJoin :: Path -> PathElemDescr -> Path -> Path PathEndDir :: Point -> Dir' -> Path PathDefine :: [Equation] -> Path -> Path data PathLabel PathLabel :: Picture -> Double -> Dir -> PathLabel data ArrowHead DefaultArrowHead :: ArrowHead ArrowHead :: (Maybe Double) -> (Maybe Double) -> ArrowHeadStyle -> ArrowHead data ArrowHeadStyle AHFilled :: ArrowHeadStyle AHLine :: ArrowHeadStyle data CutPic CutPicTrans :: CutPic -> [Int] -> CutPic CutPic :: Name -> CutPic CutPic' :: String -> CutPic pathLength :: (Num a) => Path -> a forEachPath :: (PathElemDescr -> PathElemDescr) -> Path -> Path data Dir' DirEmpty :: Dir' DirCurl :: Numeric -> Dir' DirDir :: Numeric -> Dir' DirVector :: Point -> Dir' data BasicJoin BJCat :: BasicJoin BJFree :: BasicJoin BJBounded :: BasicJoin BJStraight :: BasicJoin BJTense :: BasicJoin BJTension :: Tension -> BasicJoin BJTension2 :: Tension -> Tension -> BasicJoin BJControls :: Point -> BasicJoin BJControls2 :: Point -> Point -> BasicJoin data Tension Tension :: Numeric -> Tension TensionAtLeast :: Numeric -> Tension data Area Area :: AreaDescr -> Path -> Area data AreaDescr AreaDescr :: Color -> Layer -> Pen -> AreaDescr arColor :: AreaDescr -> Color arLayer :: AreaDescr -> Layer arPen :: AreaDescr -> Pen stdAreaDescr :: AreaDescr getDefault :: Maybe a -> a -> a data Frame Frame' :: FrameAttrib -> ExtentAttrib -> Path -> Picture -> Frame data AbsOrRel AORAbs :: Numeric -> AbsOrRel AORRel :: Numeric -> AbsOrRel AORDefault :: AbsOrRel data ExtentAttrib ExtentAttrib :: AbsOrRel -> AbsOrRel -> [Equation] -> [Equation] -> [Equation] -> [Equation] -> [Equation] -> ExtentAttrib eaX :: ExtentAttrib -> AbsOrRel eaY :: ExtentAttrib -> AbsOrRel eaEqsDX :: ExtentAttrib -> [Equation] eaEqsDY :: ExtentAttrib -> [Equation] eaEqsWidth :: ExtentAttrib -> [Equation] eaEqsHeight :: ExtentAttrib -> [Equation] eaEqs :: ExtentAttrib -> [Equation] stdExtentAttrib :: ExtentAttrib dot :: Frame bullet :: Frame box :: (IsPicture a) => a -> Frame triangle :: (IsPicture a) => a -> Frame triAngle :: (IsPicture a) => Numeric -> a -> Frame rbox :: (IsPicture a) => Numeric -> a -> Frame oval :: (IsPicture a) => a -> Frame circle :: (IsPicture a) => a -> Frame instance Show ExtentAttrib instance Show AbsOrRel instance Show Frame instance Eq AreaDescr instance Read AreaDescr instance Eq Area instance Show Area instance Read Area instance Eq Tension instance Show Tension instance Read Tension instance Eq BasicJoin instance Show BasicJoin instance Read BasicJoin instance Eq Dir' instance Show Dir' instance Read Dir' instance Eq Path instance Show Path instance Read Path instance Eq ArrowHeadStyle instance Show ArrowHeadStyle instance Read ArrowHeadStyle instance Eq ArrowHead instance Show ArrowHead instance Read ArrowHead instance Eq PathLabel instance Show PathLabel instance Read PathLabel instance Eq CutPic instance Show CutPic instance Read CutPic instance Eq PathElemDescr instance Read PathElemDescr instance Eq FrameAttrib instance Read FrameAttrib instance Eq Attrib instance Read Attrib instance Eq BitDepth instance Show BitDepth instance Read BitDepth instance Eq Picture instance Show Picture instance Read Picture instance Eq Transformation instance Show Transformation instance Read Transformation instance Eq Layer instance Show Layer instance Read Layer instance IsPicture Frame instance IsHideable Frame instance HasExtent Frame instance HasDXY Frame instance HasName Frame instance HasPattern Frame instance HasShadow Frame instance HasPen Frame instance HasBGColor Frame instance HasColor Frame instance HasRelax Frame instance HasLayer Area instance HasPen Area instance HasColor Area instance HasDefine Area instance (IsPath a) => IsArea [a] instance IsArea Path instance IsArea Area instance Show AreaDescr instance HasConcat Path instance (Real a, Real b) => IsPath (a, b) instance IsPath Char instance (IsPath a) => IsPath [a] instance IsPath Name instance IsPath Point instance IsPath Path instance HasDefine Path instance HasStartEndCut Path instance HasJoin Path instance HasStartEndDir Path instance HasArrowHead Path instance IsHideable Path instance HasPen Path instance HasPattern Path instance HasColor Path instance HasLabel Path instance HasStartEndDir PathElemDescr instance HasJoin PathElemDescr instance HasStartEndCut PathElemDescr instance HasArrowHead PathElemDescr instance IsHideable PathElemDescr instance HasPen PathElemDescr instance HasPattern PathElemDescr instance HasColor PathElemDescr instance HasLabel PathElemDescr instance Show PathElemDescr instance IsHideable FrameAttrib instance HasName FrameAttrib instance HasBGColor FrameAttrib instance HasColor FrameAttrib instance HasShadow FrameAttrib instance HasPattern FrameAttrib instance HasPen FrameAttrib instance Show FrameAttrib instance Show Attrib instance HasDefault ArrowHead instance HasConcat Transformation instance HasDefine Picture instance HasDefault Color instance HasName Picture instance HasBGColor Picture instance HasColor Picture instance HasRelax Picture instance IsPicture Area instance IsPicture Path instance (IsPicture a, IsPicture b, IsPicture c) => IsPicture (a, b, c) instance (IsPicture a, IsPicture b) => IsPicture (a, b) instance IsPicture () instance (IsPicture a) => IsPicture [a] instance IsPicture Numeric instance IsPicture Integer instance IsPicture Int instance IsPicture Char instance IsPicture Picture instance (FromList a) => HasConcat [a] instance FromList Equation module FMP.Frames drum :: (IsPicture a) => a -> Frame diamond :: Picture -> Picture fuzzy :: Int -> Int -> Picture -> Picture cloud :: Int -> Int -> Picture -> Picture module FMP.Matrix matrix :: (IsPicture a) => [[a]] -> Picture matrixAlign :: [[Cell]] -> Picture matrixSepBy :: (IsPicture a) => Numeric -> Numeric -> [[a]] -> Picture matrixAlignSepBy :: Numeric -> Numeric -> [[Cell]] -> Picture rowAlign :: [Cell] -> Picture columnAlign :: [Cell] -> Picture rowAlignSepBy :: Numeric -> [Cell] -> Picture columnAlignSepBy :: Numeric -> [Cell] -> Picture cell :: (IsPicture a) => a -> Cell cell' :: (IsPicture a) => Dir -> a -> Cell instance Show Cell module FMP.Symbols data Symbols Symbols :: SymPoint -> SymNum -> Symbols symPnts :: Symbols -> SymPoint symNums :: Symbols -> SymNum data SymPoint SymPName :: Name -> Int -> Int -> SymPoint SymPHier :: Name -> Int -> SymPoint -> SymPoint SymPUnion :: SymPoint -> SymPoint -> SymPoint SymPUnion3 :: SymPoint -> SymPoint -> SymPoint -> SymPoint SymPTrans :: SymPoint -> Int -> SymPoint SymPRelax :: SymPoint data SymNum SymNName :: Name -> Int -> Int -> SymNum SymNHier :: Name -> Int -> SymNum -> SymNum SymNUnion :: SymNum -> SymNum -> SymNum SymNUnion3 :: SymNum -> SymNum -> SymNum -> SymNum SymNRelax :: SymNum symUnion3 :: Symbols -> Symbols -> Symbols -> Symbols symUnions :: [Symbols] -> Symbols symName :: (IsName a) => a -> Int -> Symbols -> Symbols symNames :: (IsName a) => [a] -> Int -> Symbols -> Symbols symHier :: (IsName a) => a -> Int -> Symbols -> Symbols symTrans :: Symbols -> Int -> Symbols addPDef :: SymPoint -> Symbols -> Symbols addNDef :: SymNum -> Symbols -> Symbols symPUnions :: [SymPoint] -> SymPoint symPName :: Name -> Int -> SymPoint -> SymPoint symPNames :: [Name] -> Int -> SymPoint -> SymPoint symPHier :: Name -> Int -> SymPoint -> SymPoint symPTrans :: SymPoint -> Int -> SymPoint symNUnions :: [SymNum] -> SymNum symNName :: Name -> Int -> SymNum -> SymNum symNNames :: [Name] -> Int -> SymNum -> SymNum symNHier :: Name -> Int -> SymNum -> SymNum symNHiers :: [Name] -> Int -> SymNum -> SymNum instance Eq SymNum instance Show SymNum instance Eq SymPoint instance Show SymPoint instance Eq Symbols instance Show Symbols instance HasRelax Symbols instance HasConcat SymNum instance HasConcat SymPoint instance HasConcat Symbols module FMP.Syntax class HasEmit a emit :: (HasEmit a) => a -> Doc data MetaPost MPAssign :: Term -> Term -> MetaPost MPAssignPath :: String -> MPPath -> MetaPost MPBoxit :: String -> MetaPost -> MetaPost MPBitLine :: (Term, Term) -> Term -> String -> MetaPost MPCloneit :: String -> String -> MetaPost MPClearIt :: MetaPost MPClip :: MPPath -> MetaPost MPComment :: String -> MetaPost MPConc :: MetaPost -> MetaPost -> MetaPost MPDef :: String -> Term -> MetaPost MPDefineTrans :: String -> MPTransform -> MetaPost MPDraw :: MPArrow -> MPPath -> MPPattern -> MPColor -> MPPen -> MetaPost MPDrawAHead :: MPArrow -> MPPath -> MPColor -> MPPen -> MetaPost MPDrawPic :: MPColor -> Term -> MetaPost MPDrawUnBoxed :: [String] -> MetaPost MPEquals :: [Term] -> MetaPost MPFigure :: Int -> MetaPost -> MetaPost MPFill :: MPPath -> MPColor -> MPPen -> MetaPost MPFixPos :: [String] -> MetaPost MPFixSize :: [String] -> MetaPost MPGraduate :: MPColor -> MPColor -> MPPath -> Int -> Double -> MetaPost MPGraduatePic :: MPColor -> MPColor -> Term -> Int -> Double -> MetaPost MPGraduatePath :: MPArrow -> MPColor -> MPColor -> MPPath -> MPPattern -> MPPen -> Int -> Double -> MetaPost MPGroup :: MetaPost -> MetaPost MPIfElse :: Term -> MetaPost -> MetaPost -> MetaPost MPImage :: String -> MetaPost -> MetaPost MPRelax :: MetaPost MPShapeit :: String -> MetaPost MPSubBox :: Int -> MetaPost -> MetaPost MPTex :: String -> MetaPost MPText :: String -> MetaPost MPVerbatim :: String -> MetaPost mpConcs :: [MetaPost] -> MetaPost data MPArrow MPNormal :: MPArrow MPArrow :: (Maybe Double) -> (Maybe Double) -> MPArrowStyle -> MPArrow MPReverse :: (Maybe Double) -> (Maybe Double) -> MPArrowStyle -> MPArrow data MPArrowStyle MPArrowStyleFilled :: MPArrowStyle MPArrowStyleLine :: MPArrowStyle mpArrowStyle :: ArrowHeadStyle -> MPArrowStyle mpPathArrow :: ArrowHead -> MPArrow mpPathRArrow :: ArrowHead -> MPArrow data MPTransform MPTransform :: Term -> Term -> Term -> Term -> Term -> Term -> MPTransform data MPPath MPPathNorm :: MPPathSub -> MPPath MPCutbefore :: MPPath -> MPPath -> MPPath MPCutafter :: MPPath -> MPPath -> MPPath MPBPath :: Term -> MPPath MPTransformP :: [Int] -> MPPath -> MPPath MPShiftedP :: Term -> MPPath -> MPPath MPSubPath :: Term -> Term -> MPPath -> MPPath MPPathTerm :: Term -> MPPath data MPPathSub MPPathSub :: Term -> MPPathJoin -> MPPathSub -> MPPathSub MPPathEndDir :: Term -> MPPathDir -> MPPathSub MPPathEnd :: Term -> MPPathSub MPCycle :: MPPathSub MPPathBuildCycle :: [MPPath] -> MPPathSub MPPathTransform :: MPTransform -> MPPathSub -> MPPathSub data MPPathJoin MPPathJoin :: MPPathDir -> MPPathBasicJoin -> MPPathDir -> MPPathJoin data MPPathBasicJoin MPPathBasicJoinCat :: MPPathBasicJoin MPPathBasicJoin2 :: MPPathBasicJoin MPPathBasicJoin3 :: MPPathBasicJoin MPPathBasicJoinTense :: MPPathBasicJoin MPPathBasicJoinStraight :: MPPathBasicJoin MPPathBasicJoinTension1 :: MPPathBasicJoinTension -> MPPathBasicJoin MPPathBasicJoinTension2 :: MPPathBasicJoinTension -> MPPathBasicJoinTension -> MPPathBasicJoin MPPathBasicJoinControls1 :: Term -> MPPathBasicJoin MPPathBasicJoinControls2 :: Term -> Term -> MPPathBasicJoin data MPPathDir MPDefaultPathDir :: MPPathDir MPPathDirCurl :: Term -> MPPathDir MPPathDirPair :: Term -> Term -> MPPathDir MPPathDir :: Term -> MPPathDir data MPPathBasicJoinTension MPPathBasicJoinTension :: Term -> MPPathBasicJoinTension MPPathBasicJoinAtLeast :: Term -> MPPathBasicJoinTension data MPColor MPDefaultColor :: MPColor MPColor :: Double -> Double -> Double -> MPColor mpColor :: Color -> MPColor data MPPen MPDefaultPen :: MPPen MPPenCircle :: (Term, Term) -> Term -> MPPen MPPenSquare :: (Term, Term) -> Term -> MPPen mpPen :: Pen -> MPPen data MPPattern MPDefaultPattern :: MPPattern MPDashPattern :: [Double] -> MPPattern mpPattern :: Pattern -> MPPattern mpEquations :: [Equation] -> MetaPost mpPEquations :: [Point] -> [Term] mpNEquations :: [Numeric] -> [Term] mpBoolean :: Boolean -> Term mpBoolRelat :: BoolRelat -> String mpPoint :: Point -> Term mpCutPic :: CutPic -> Term mpNumeric :: Numeric -> Term emitL :: [String] -> Doc showFF :: Double -> ShowS emitPattern' :: MPPattern -> Doc emitDefTrans :: String -> MPTransform -> Doc emitColor' :: MPColor -> Doc emitPen2 :: (Num b, HasEmit b, Eq a, HasEmit a) => (a, a) -> b -> Doc emitPen' :: MPPen -> Doc emitDir :: Dir -> String tdot :: String -> Dir -> Term tr :: Int -> String pos :: Int -> Int -> String savestring :: String -> String defDY :: Term txtDX :: Term txtDY :: Term defDX :: Term shiftRefPoint :: Int -> Term suff :: Int -> String instance Eq MPPattern instance Eq MPPen instance Eq MPColor instance Eq MPPathBasicJoinTension instance Eq MPPathDir instance Eq MPPathBasicJoin instance Eq MPPathJoin instance Eq MPPathSub instance Eq MPPath instance Eq MPTransform instance Eq MPArrowStyle instance Eq MPArrow instance Eq MetaPost instance HasEmit MPPen instance HasEmit MPColor instance HasEmit MPPattern instance HasEmit MPArrow instance HasEmit Term instance HasEmit MPPathBasicJoinTension instance HasEmit MPPathBasicJoin instance HasEmit MPPathDir instance HasEmit MPPathJoin instance HasEmit MPPathSub instance HasEmit MPPath instance HasEmit MetaPost instance HasRelax MetaPost instance HasConcat MetaPost module FMP.Resolve resolvePoint :: (Int, Symbols) -> Point -> Maybe Point resolvePath :: (Int, Int, Symbols) -> Path -> Maybe (Int, Path) resolveNumeric :: (Int, Symbols) -> Numeric -> Maybe Numeric resolveEquation :: (Int, Symbols) -> Equation -> Maybe Equation maybes2List :: [Maybe a] -> [a] symEquations :: (Int, Int, Symbols) -> [Equation] -> (Int, Symbols) insertNumeric :: (Int, Int, Symbols) -> Name -> (Int, Symbols) module FMP.Core -- | generate| we get |(1,relax)::MPArg|, the first two members of the -- result are ignored, and the last two make up the MetaPost code. -- -- wferi ) mp :: Picture -> MPArg -> MPResult module FMP.Tree number :: Tree -> (Tree' (Int, Int, Int)) data Tree' a Node' :: a -> NodeDescr -> [Tree' a] -> Tree' a data Tree Node :: Picture -> NodeDescr -> [Edge] -> Tree data Edge Edge :: Path -> Tree -> Edge Cross :: Path -> Edge data AlignSons DefaultAlign :: AlignSons AlignLeft :: AlignSons AlignRight :: AlignSons AlignLeftSon :: AlignSons AlignRightSon :: AlignSons AlignOverN :: Int -> AlignSons AlignAngles :: [Numeric] -> AlignSons AlignConst :: Numeric -> AlignSons AlignFunction :: (NodeDescr -> [Extent] -> Int -> [Numeric]) -> AlignSons data Distance DistCenter :: Numeric -> Distance DistBorder :: Numeric -> Distance edge :: Tree -> Edge edge' :: Path -> Tree -> Edge cross :: Point -> Edge cross' :: Path -> Edge enode :: (IsPicture a) => a -> [Edge] -> Edge node :: (IsPicture a) => a -> [Edge] -> Tree stair :: Point -> Point -> Path forEachNode :: (Tree -> Tree) -> Tree -> Tree forEachLevelNode :: Int -> (Tree -> Tree) -> Tree -> Tree forEachPic :: (Picture -> Picture) -> Tree -> Tree forEachEdge :: (Path -> Path) -> Tree -> Tree defaultAlign :: AlignSons alignLeft :: AlignSons alignRight :: AlignSons alignLeftSon :: AlignSons alignRightSon :: AlignSons alignOverN :: Int -> AlignSons alignAngles :: [Numeric] -> AlignSons alignConst :: Numeric -> AlignSons alignFunction :: (NodeDescr -> [Extent] -> Int -> [Numeric]) -> AlignSons setAlign :: AlignSons -> Tree -> Tree getAlign :: Tree -> AlignSons setDistH :: Distance -> Tree -> Tree getDistH :: Tree -> Distance setDistV :: Distance -> Tree -> Tree getDistV :: Tree -> Distance fit :: Numeric -> Extent -> Extent -> Position fitLeft :: Numeric -> [Extent] -> [Position] fitRight :: Numeric -> [Extent] -> [Position] distCenter :: Numeric -> Distance distBorder :: Numeric -> Distance data NodeName Parent :: NodeName This :: NodeName Root :: NodeName Up :: Int -> NodeName Son :: Int -> NodeName instance Show NodeName instance Show NodeDescr instance Eq Distance instance Show Distance instance Show AlignSons instance Show Edge instance Show Tree instance IsPicture Tree instance IsName NodeName instance Fractional Distance instance Num Distance instance Show (a -> b) instance HasColor Tree instance HasName Tree instance IsHideable Edge instance HasStartEndDir Edge instance HasPen Edge instance HasArrowHead Edge instance HasPattern Edge instance HasLabel Edge instance HasColor Edge instance (Num a, Num b) => Num (a, b) instance (Eq a, Eq b) => Eq (a -> b) instance (Read a, Read b) => Read (a -> b) module FMP.RedBlack data Two34 a Nil :: Two34 a Two :: (Two34 a) -> a -> (Two34 a) -> Two34 a Three :: (Two34 a) -> a -> (Two34 a) -> a -> (Two34 a) -> Two34 a Four :: (Two34 a) -> a -> (Two34 a) -> a -> (Two34 a) -> a -> (Two34 a) -> Two34 a edgeN :: (Show a) => a -> Tree -> Edge edgeNRed :: (Show a) => a -> Tree -> Edge tiny :: String -> Picture tbox :: String -> Frame tbox2 :: String -> String -> Frame tbox3 :: String -> String -> String -> Frame convert234 :: Two34 String -> Tree convertRS :: Two34 String -> Tree instance (Show a) => Show (Two34 a) module FMP.Canvas data Canvas CDraw :: [Path] -> Canvas CClip :: Path -> Canvas CFill :: [Area] -> Canvas CDrop :: (Numeric, Numeric) -> Picture -> Canvas CConcat :: Canvas -> Canvas -> Canvas CRelax :: Canvas cdrop :: (IsPicture a) => (Numeric, Numeric) -> a -> Canvas cdraw :: (IsPath a) => a -> Canvas cdraws :: (IsPath a) => [a] -> Canvas cfill :: (IsArea a) => a -> Canvas cfills :: (IsArea a) => [a] -> Canvas cclip :: (IsPath a) => a -> Canvas instance Show Canvas instance IsPicture Canvas instance HasRelax Canvas instance HasConcat Canvas module FMP.Turtle data Turtle TConc :: Turtle -> Turtle -> Turtle TDropPic :: Picture -> Turtle TColor :: Color -> Turtle -> Turtle TPen :: Pen -> Turtle -> Turtle THide :: Turtle -> Turtle TForward :: Numeric -> Turtle TTurn :: Numeric -> Turtle TPenUp :: Turtle TPenDown :: Turtle THome :: Turtle TFork :: Turtle -> Turtle -> Turtle data TurtleAttrib TAttrib :: PathElemDescr -> Turtle -> TurtleAttrib TAttribFork :: [TurtleAttrib] -> [TurtleAttrib] -> TurtleAttrib spreadAttrib :: PathElemDescr -> Turtle -> [TurtleAttrib] -> [TurtleAttrib] figure :: Turtle -> PathElemDescr -> ([Path], [PicPos]) turtle :: (IsPicture a) => a -> Picture home :: Turtle toleft :: Turtle toright :: Turtle turn :: Numeric -> Turtle turnl :: Numeric -> Turtle turnr :: Numeric -> Turtle forward :: Numeric -> Turtle backward :: Numeric -> Turtle penUp :: Turtle penDown :: Turtle plot :: [Turtle] -> Turtle fork :: Turtle -> Turtle -> Turtle instance Show TurtleAttrib instance Show Turtle instance IsPicture Turtle instance HasPen Turtle instance HasColor Turtle instance HasPicture Turtle instance HasRelax Turtle instance HasConcat Turtle instance IsHideable Turtle instance HasDefault TurtleDescr module FMP data Doc metaPost :: Int -> Picture -> Parameters -> MetaPost -- | emit|s a file called NAME.MP (or NAME.NUMBER.MP in not |newmp|) with a -- beginfig(NUMBER) in it, and runs MetaPost on it. The conversion to -- |MetaPost|, which |HasEmit|, is done by |metaPost|. Finally, the -- emitted |Doc| is |show|n. -- -- wferi ) generate :: (IsPicture a) => String -> Int -> a -> IO () funcmp :: (IsPicture a) => String -> Int -> a -> IO ()