                   ((fromIntegral . fromEnum) style)
                   (castPtr glyphColorPtr)
                   (castPtr backgroundColorPtr)
-      
+
+pageAddAnnot :: (PageClass page, AnnotClass annot) => page -> annot -> IO ()
+pageAddAnnot page annot =
+  {# call poppler_page_add_annot #} (toPage page) (toAnnot annot)
+
+pageRemoveAnnot :: (PageClass page, AnnotClass annot) => page -> annot -> IO ()
+pageRemoveAnnot page annot =
+  {# call poppler_page_remove_annot #} (toPage page) (toAnnot annot)
+
 -- | Render the selection specified by selection for page into pixbuf. The selection will be rendered at
 -- scale, using @glyphColor@ for the glyphs and @backgroundColor@ for the selection background.
--- 
+--
 -- If non-'Nothing', @oldSelection@ specifies the selection that is already rendered in pixbuf, in which case
 -- this function will (some day) only render the changed part of the selection.
 {-
-pageRenderSelectionToPixbuf :: PageClass page => page  
- -> Double -- ^ @scale@            scale specified as pixels per point             
- -> Int -- ^ @rotation@         rotate the document by the specified degree     
- -> Pixbuf -- ^ @pixbuf@           pixbuf to render to                             
- -> PopplerRectangle -- ^ @selection@        start and end point of selection as a rectangle 
- -> PopplerRectangle -- ^ @oldSelection@    previous selection                              
- -> SelectionStyle -- ^ @style@            a 'SelectionStyle'                         
- -> Color -- ^ @glyphColor@      color to use for drawing glyphs                 
- -> Color -- ^ @backgroundColor@ color to use for the selection background       
+pageRenderSelectionToPixbuf :: PageClass page => page
+ -> Double -- ^ @scale@            scale specified as pixels per point
+ -> Int -- ^ @rotation@         rotate the document by the specified degree
+ -> Pixbuf -- ^ @pixbuf@           pixbuf to render to
+ -> PopplerRectangle -- ^ @selection@        start and end point of selection as a rectangle
+ -> PopplerRectangle -- ^ @oldSelection@    previous selection
+ -> SelectionStyle -- ^ @style@            a 'SelectionStyle'
+ -> Color -- ^ @glyphColor@      color to use for drawing glyphs
+ -> Color -- ^ @backgroundColor@ color to use for the selection background
  -> IO ()
-pageRenderSelectionToPixbuf page scale rotation pixbuf selection oldSelection style glyphColor backgroundColor = 
-  with selection $ \ selectionPtr -> 
-  with oldSelection $ \ oldSelectionPtr -> 
-  with glyphColor $ \ glyphColorPtr -> 
-  with backgroundColor $ \ backgroundColorPtr -> 
+pageRenderSelectionToPixbuf page scale rotation pixbuf selection oldSelection style glyphColor backgroundColor =
+  with selection $ \ selectionPtr ->
+  with oldSelection $ \ oldSelectionPtr ->
+  with glyphColor $ \ glyphColorPtr ->
+  with backgroundColor $ \ backgroundColorPtr ->
       {#call poppler_page_render_selection_to_pixbuf #}
         (toPage page)
         (realToFrac scale)

      width <- peek widthPtr
      height <- peek heightPtr
      return (realToFrac width, realToFrac height)
  
-- | Returns the index of page
pageGetIndex :: PageClass page => page
 -> IO Int  -- ^ returns index value of page 
pageGetIndex page =
  liftM fromIntegral $ 
  {#call poppler_page_get_index #} (toPage page)
  
-- | Get the embedded thumbnail for the specified page. If the document doesn't have an embedded
-- thumbnail for the page, this function returns 'Nothing'.
pageGetThumbnail :: PageClass page => page

        ((fromIntegral . fromEnum) style)
        (castPtr glyphColorPtr)
        (castPtr backgroundColorPtr)
-}
