RosettaCodeData/Task/Constrained-genericity/TXR/constrained-genericity-2.txr

9 lines
355 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
(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))))