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

(define slim (Snake 'Slimey 10 'rats))
(define anthony (Tiger 'Tony 12))

#;(Snake 10 'Slimey 5)
; => compile error: 10 is not a Symbol

(Snake? (Snake 'Slimey 10 'rats)) ; => #t
(Snake? (Tiger 'Tony 12)) ; => #f
#;(Snake? 10)               ; => compile error

(Snake-name slim)
#;(Snake-name anthony) ; run time error