RosettaCodeData/Task/Constrained-genericity/TXR/constrained-genericity-2.txr
2023-07-01 13:44:08 -04:00

8 lines
355 B
Text

(define-struct-clause :food-box (food-type :form form)
(unless (subtypep food-type 'edible)
(compile-error form "~s requires edible type, not ~s" :food-box food-type))
^(food
(:method set-food (me food)
(unless (typep food ',food-type)
(error "~s: requires ~s object, not ~s" %fun% ',food-type food))
(set me.food food))))