2htdp/private/type.ss
#lang typed/scheme
(provide (all-defined-out))

;; This module is careful not to depend on 2htdp/image so that
;; we can use it in Scribble examples (no MrEd dependency).

(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))