(def-type (Shape) (Circle Float) (Square Float) (Rectangle Float Float)) (def c1 (Circle 1.0)) (def c2 (Circle 2.0)) (def s1 (Square 1.0)) (def r1 (Rectangle 1.0 1.0)) (match r1 (Circle r) "Hello, circle!" (Square w) "Hello, square!" (Rectangle w h) "Hello, rectangle!")