UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture1/ snippet-017.rkt
#lang plait
(define-type Animal
  [Snake   (name : Symbol) (weight : Number) (food : Symbol)]
  [Tiger   (name : Symbol) (weight : Number)])

(define (animal-name a)
  (type-case Animal a
    [(Snake n w f) n]
    [(Tiger n sc) n]))

(animal-name (Snake 'Slimey 10 'rats))
(animal-name (Tiger 'Tony 12)) ; => 'Tony