PasteRack.org
Paste # 90602
2017-08-09 13:03:24

Fork as a new paste.

Paste viewed 92 times.


Embed:

for/set macro broken?

  1. #lang typed/racket
  2.  
  3. (require racket/set)
  4.  
  5. ;; Simple case.  Can't get to work.
  6. (: test (Setof Integer) -> (Setof Integer))
  7. (define (test ss)
  8.   (let ([ss1 (for/seteq ([s ss]))])
  9.     ss1))
  10.  
  11. ;; Ultimate goal
  12. (: set-filter (All (a) (Setof a) (a -> Boolean) -> (Setof a)))
  13. (define (set-filter ss f)
  14.   (let ([ss1 (for/seteq ([s ss] #:when (f s)) s)])
  15.     (set-subtact ss ss1)))

=>

eval:2:0: type declaration: too many types after identifier

  in: (: test (Setof Integer) -> (Setof Integer))

eval:3:0: for/seteq: bad syntax

  in: (for/seteq ((s ss)))

eval:5:0: Type Checker: missing type for identifier;

 consider using `require/typed' to import it

  identifier: immutable-custom-set

  from module: private/set-types.rkt

  in: ss1