sig
  type style = NoStyle | Solid | Dashed | Beveled | Inset | UnderlineStyle
  type border = {
    width : float;
    vradius : float;
    hradius : float;
    style : Pdfannot.style;
    dasharray : int array;
  }
  type subtype =
      Text
    | Link
    | FreeText
    | Line
    | Square
    | Circle
    | Polygon
    | PolyLine
    | Highlight
    | Underline
    | Squiggly
    | StrikeOut
    | Stamp
    | Caret
    | Ink
    | Popup of Pdfannot.annotation
    | FileAttachment
    | Sound
    | Movie
    | Widget
    | Screen
    | PrinterMark
    | TrapNet
    | Watermark
    | ThreeDee
    | Unknown
  and annotation = {
    subtype : Pdfannot.subtype;
    contents : string option;
    subject : string option;
    rectangle : float * float * float * float;
    border : Pdfannot.border;
    colour : (int * int * int) option;
    rest : Pdf.pdfobject;
  }
  val annotations_of_page :
    Pdf.pdfdoc -> Pdfdoc.page -> Pdfannot.annotation list
end