UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture1/ snippet-015.rkt
#lang plait
;; A type can have any number of variants:
(define-type Shape
  [Square  (length : Number)]
  [Circle  (radius : Number)]
  [Triangle (height : Number)
            (width : Number)])

(Triangle? (Triangle 10 12)) ; => #t