; A Shape is either a Circle (w/ radius) or a Rectangle (w/ width/height) (def-type (Shape) (Circle Float) (Rectangle Float Float)) ; Return the area of s (def (area s) (match s (Rectangle w h) (* w h) (Circle r) (* 3.14159 r))) (def s (Rectangle 3.0 4.0)) (area s)