#lang typed/scheme
(provide (all-defined-out))
(define-predicate mode? Mode)
(define-type-alias Mode
(U 'solid "solid" 'outline "outline"))
(define-predicate x-place? X-Place)
(define-type-alias X-Place
(U 'left 'right 'middle 'center
"left" "right" "middle" "center"))
(define-predicate y-place? Y-Place)
(define-type-alias Y-Place
(U 'top 'bottom 'middle 'center 'baseline
"top" "bottom" "middle" "center" "baseline"))
(define-predicate pen-style? Pen-Style)
(define-type-alias Pen-Style
(U "solid" 'solid "dot" 'dot "long-dash" 'long-dash
"short-dash" 'short-dash "dot-dash" 'dot-dash))
(define-predicate pen-cap? Pen-Cap)
(define-type-alias Pen-Cap
(U "round" 'round "projecting" 'projecting "butt" 'butt))
(define-predicate pen-join? Pen-Join)
(define-type-alias Pen-Join
(U "round" 'round "bevel" 'bevel "miter" 'miter))