-- 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://download.savannah.nongnu.org/releases/funcmp/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://download.savannah.nongnu.org/releases/funcmp/Thesis.ps
-- and in English at
-- http://download.savannah.nongnu.org/releases/funcmp/Thesis_eng.ps.
--
-- Last but not least, there is a tutorial that offers many helpful
-- examples available in German at
-- http://download.savannah.nongnu.org/releases/funcmp/Tutorial.ps
-- and in English at
-- http://download.savannah.nongnu.org/releases/funcmp/Tutorial_eng.ps.
@package funcmp
@version 1.8
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 where toNameList [] = error "toNameList undefined for []" toNameList [l] = toName l toNameList (l : ls) = Hier (toName l) (toNameList ls)
toName :: IsName a => a -> Name
toNameList :: IsName a => [a] -> Name
instance Eq Dir
instance Read Dir
instance Show Dir
instance Enum Dir
instance Ord Dir
instance Eq Pattern
instance Show Pattern
instance Read Pattern
instance Eq BoolRelat
instance Show BoolRelat
instance Read BoolRelat
instance Ord BoolRelat
instance Show Name
instance Read Name
instance Eq Name
instance Ord Name
instance Eq FunPPP
instance Show FunPPP
instance Read FunPPP
instance Ord FunPPP
instance Eq FunPN
instance Show FunPN
instance Read FunPN
instance Ord FunPN
instance Eq FunNN
instance Show FunNN
instance Read FunNN
instance Ord FunNN
instance Eq FunNNN
instance Show FunNNN
instance Read FunNNN
instance Ord FunNNN
instance Eq FunNsN
instance Show FunNsN
instance Read FunNsN
instance Ord FunNsN
instance Eq Numeric
instance Show Numeric
instance Read Numeric
instance Ord Numeric
instance Eq Point
instance Show Point
instance Read Point
instance Ord Point
instance Eq Boolean
instance Show Boolean
instance Read Boolean
instance Ord Boolean
instance Eq Equation
instance Show Equation
instance Read Equation
instance Eq Pen
instance Show Pen
instance Read Pen
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 where toPicture a = text (show a) toPictureList ps = row (map toPicture ps)
toPicture :: IsPicture a => a -> Picture
toPictureList :: IsPicture a => [a] -> Picture
class IsPath a where toPathList ps = foldl1 (.-.) (map toPath ps)
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 Eq Layer
instance Show Layer
instance Read Layer
instance Eq Transformation
instance Show Transformation
instance Read Transformation
instance Eq BitDepth
instance Show BitDepth
instance Read BitDepth
instance Eq Attrib
instance Read Attrib
instance Eq FrameAttrib
instance Read FrameAttrib
instance Eq CutPic
instance Show CutPic
instance Read CutPic
instance Eq ArrowHeadStyle
instance Show ArrowHeadStyle
instance Read ArrowHeadStyle
instance Eq ArrowHead
instance Show ArrowHead
instance Read ArrowHead
instance Eq Dir'
instance Show Dir'
instance Read Dir'
instance Eq Tension
instance Show Tension
instance Read Tension
instance Eq BasicJoin
instance Show BasicJoin
instance Read BasicJoin
instance Eq AreaDescr
instance Read AreaDescr
instance Eq Area
instance Show Area
instance Read Area
instance Eq Path
instance Show Path
instance Read Path
instance Eq PathElemDescr
instance Read PathElemDescr
instance Eq PathLabel
instance Show PathLabel
instance Read PathLabel
instance Eq Picture
instance Show Picture
instance Read Picture
instance Show AbsOrRel
instance Show ExtentAttrib
instance Show Frame
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 SymPoint
instance Show SymPoint
instance Eq SymNum
instance Show SymNum
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 :: (Eq b, 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
defDX :: Term
txtDY :: Term
txtDX :: Term
defDY :: Term
shiftRefPoint :: Int -> Term
suff :: Int -> String
instance Eq MPArrowStyle
instance Eq MPArrow
instance Eq MPTransform
instance Eq MPPathDir
instance Eq MPPathBasicJoinTension
instance Eq MPPathBasicJoin
instance Eq MPPathJoin
instance Eq MPPathSub
instance Eq MPPath
instance Eq MPColor
instance Eq MPPen
instance Eq MPPattern
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 Eq Distance
instance Show Distance
instance Show NodeName
instance Show AlignSons
instance Show NodeDescr
instance Show Tree
instance Show Edge
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 Turtle
instance Show TurtleAttrib
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 ()