「プログラミング言語:アプリケーションと解釈」の6ページから、DrRacketで最初の例をコーディングしようとしています。
#lang typed/racket
(define-type AE
[num (n number?)]
[add (lhs AE?) (rhs AE?)]
[sub (lhs AE?) (rhs AE?)])
しかし、私はエラーを受け取ります
aeinterpretter.rkt:5:2: define-type: unexpected term in: (add (lhs AE?) (rhs AE?))
私はここで何が間違っているのですか?