UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture09/ f.rkt
#lang plait
(define-syntax-rule (rec V : T E B)
  (local [(V : T) (define V E)] B))

#;(let ([fact (lambda (n)
              (if (zero? n) 1 (* n (fact (- n 1)))))])
  (fact 10))

(rec f : (Number -> Number)
     (lambda ([n : Number])
       (+1 (f 0)))
    (f 10))