(def-type (Shape) (Circle Float) (Rectangle Float Float)) (def s1 (Circle 2.0)) (def s2 (Rectangle 3.0 4.0)) (match s2 (Rectangle w h) (* w h) (Circle r) (* 3.14159 r))