private/frtime/graphics-sig.ss
(module graphics-sig mzscheme
  (require (lib "unitsig.ss"))

  (provide graphics^ graphics:posn-less^ graphics:posn^)

  (define-signature graphics:posn^
    (make-posn posn? posn-x posn-y set-posn-x! set-posn-y!))

  (define-signature graphics:posn-less^
    (viewport?

     sixkey-value sixkey-shift sixkey-control sixkey-meta sixkey-alt
     
     sixmouse-x sixmouse-y sixmouse-left? sixmouse-middle? sixmouse-right?
     sixmouse?
     make-sixmouse
     
     open-graphics 
     close-graphics 
     graphics-open?
     
     make-rgb
     rgb-blue rgb-red rgb-green
     change-color 
     rgb?
     
     open-viewport 
     open-pixmap
     close-viewport    
     
     query-mouse-posn

     viewport-mouse-events
     viewport-key-events
     
     clear-viewport draw-viewport flip-viewport
     
     draw-line clear-line flip-line 
     draw-pixel clear-pixel flip-pixel 
     get-pixel get-color-pixel test-pixel
     
     draw-rectangle clear-rectangle flip-rectangle 
     draw-ellipse clear-ellipse flip-ellipse 
     draw-polygon clear-polygon flip-polygon 
     draw-solid-rectangle clear-solid-rectangle flip-solid-rectangle 
     draw-solid-ellipse clear-solid-ellipse flip-solid-ellipse 
     draw-solid-polygon clear-solid-polygon flip-solid-polygon 
     
     get-string-size
     
     draw-string clear-string flip-string 
     
     draw-pixmap-posn
     draw-pixmap
     save-pixmap
     
     copy-viewport 
     
     default-display-is-color?
     
     viewport->snip
     
     viewport-dc viewport-buffer-dc))
  
  (define-signature graphics^
    ((open graphics:posn-less^)
     (open graphics:posn^)))
)