 
 -- | Returns the list of marks of the given category at iter. If category is empty it returns all marks at
 -- iter.
-sourceBufferGetSourceMarksAtIter :: SourceBuffer -- ^ @buffer@   a 'SourceBuffer'.             
+sourceBufferGetSourceMarksAtIter :: SourceBufferClass buffer => buffer -- ^ @buffer@   a 'SourceBuffer'.             
                                  -> TextIter -- ^ @iter@     an iterator.                   
                                  -> String -- ^ @category@ category to search for or empty
                                  -> IO [SourceMark]
 sourceBufferGetSourceMarksAtIter buffer iter category =
   withCString category $ \categoryPtr ->
   {#call gtk_source_buffer_get_source_marks_at_iter #}
-    buffer
+    (toSourceBuffer buffer)
     iter
     categoryPtr
   >>= readGSList

--    passed name is @Nothing@.  Also, the buffer owns the markers so you
--    shouldn't unreference it.

sourceBufferCreateSourceMark :: SourceBuffer -- the buffer
                         -> Maybe String -- the name of the mark
                         -> String -- the category of the mark
                         -> TextIter -> IO SourceMark

  liftM toBool $
  withCString category $ \categoryPtr ->
  {#call gtk_source_buffer_forward_iter_to_source_mark #}
    (toSourceBuffer buffer)
    iter
    categoryPtr

-- | Moves iter to the position of the previous 'SourceMark' of the given category. Returns 'True' if iter
-- was moved. If category is empty, the previous source mark can be of any category.
sourceBufferBackwardIterToSourceMark :: SourceBufferClass buffer => buffer  -- ^ @buffer@   a 'SourceBuffer'.             
                                     -> TextIter -- ^ @iter@     an iterator.                   
                                     -> String -- ^ @category@ category to search for or emtpy
                                     -> IO Bool -- ^ returns  whether iter moved.            
