`type t`

The abstract commands type

### Drawing Commands

`val draw : ?brush:Brush.t -> ?color:Color.t -> ?pen:Pen.t -> ?dashed:Dash.t -> Path.t -> t`

Draw a path

- parameter color

  the color of the path; default is black

- parameter pen

  the pen used to draw the path; default is `Brush.Pen.default`

- parameter dashed

  if given, the path is drawn using that dash_style.

`val fill : ?color:Color.t -> Path.t -> t`

Fill a contour given by a closed path

- parameter color

  the color used to fill the area; default is black

`val draw_pic : Picture.t -> t`

draws a picture

`val externalimage : string -> [ `None | `Width of Num.t | `Height of Num.t | `Inside of Num.t * Num.t | `Exact of Num.t * Num.t ] -> t`

insert an image given its filename - *EXPERIMENTAL*

### Manipulating Commands

`val nop : t`

A command that has no effect

`val append : t -> t -> t`

Append two commands to form a compound command

`val (++) : t -> t -> t`

Abbreviation for `append`

`val seq : t list -> t`

Group a list of commands to a single command

`val iter : int -> int -> (int -> t) -> t`

`iter m n f` builds a command that corresponds to the sequence of commands `f m; f (m+1); ... ; f(n)`

`val iterl : ('a -> t) -> 'a list -> t`

`iterl f l` builds a command that corresponds to the sequence of commands `f x1; f x2; ... ; f xn` for `l = [x1;x2;...;xn]`

### Labels

`type hposition = [`

1. `| `Center`
2. `| `West`
3. `| `East`
4. `| `Left`
5. `| `Right`

`]`
`type vposition = [`

1. `| `Center`
2. `| `North`
3. `| `South`
4. `| `Top`
5. `| `Bot`
6. `| `Bottom`

`]`
`type position = [`

1. `| hposition`
2. `| vposition`
3. `| `Northwest`
4. `| `Northeast`
5. `| `Southwest`
6. `| `Southeast`
7. `| `Upperleft`
8. `| `Upperright`
9. `| `Lowerleft`
10. `| `Lowerright`
11. `| `Topleft`
12. `| `Topright`
13. `| `Bottomleft`
14. `| `Bottomright`
15. `| `Upleft`
16. `| `Upright`
17. `| `Lowleft`
18. `| `Lowright`

`]`

Positions - they are used at many places in Mlpost to indicate a direction or position.

`val label : ?pos:position -> Picture.t -> Point.t -> t`

`label ~pos:`West pic p` puts picture `pic` at the left of the point `p`

`val dotlabel : ?pos:position -> Picture.t -> Point.t -> t`

Works like `label`, but puts a dot at point `p` as well