teachpacks/first-order-universe.rkt
#lang racket

(require (for-syntax "../utilities.rkt"))
(require (prefix-in universe: "universe.rkt"))


(define-syntax (my-animate stx)
  (syntax-case stx ()
    [id
     (identifier? #'id)
     (raise-pyret-error/stx
      "animate: expected a function call, but there are no arguments"
      stx)]
    [(_ arg)
     (syntax/loc stx
       (universe:animate (lambda (n) (arg n))))]
    [(_ arg rest ...)
     (raise-pyret-error/stx
      "the animate function only expects one argument"
      stx)]))
(provide (rename-out [my-animate animate]))
(provide (rename-out [universe:big-bang big-bang]))