Racket simple AE define-type

racket

Solution

You should run this example in the PLAI language:

#lang plai

(define-type AE
 [num (n number?)]
 [add (lhs AE?) (rhs AE?)]
 [sub (lhs AE?) (rhs AE?)])

The Typed Racket language is a totally different language that gives you most of the power of the base Racket language, but with a static type system. The `define-type` form in PLAI is a different notion of "type".

Problem

From the book "Programming Languages: Application and Interpretation" page 6 I try to code the very first example in DrRacket ``` #lang typed/racket (define-type AE [num (n number?)] [add (lhs AE?) (rhs AE?)] [sub (lhs AE?) (rhs AE?)]) ``` But I get the error ``` aeinterpretter.rkt:5:2: define-type: unexpected term in: (add (lhs AE?) (rhs AE?)) ``` What am I doing wrong here?

Original source