[racket] Typed racket and rack unit (Was: Type of curry)
Vincent and Carl, hello.
On 2013 Feb 25, at 19:37, Vincent St-Amour <stamourv at ccs.neu.edu> wrote:
> As Carl said, TR's type system can't fully describe the behavior of
> `curry'. With its new type, `curry' works on n-ary functions, but the
> returned function is limited to accepting its arguments in two steps,
> the first one first, then all the others.
Thanks for this explanation -- it makes a lot of sense.
However (sorry), I've again run into a typed/racket problem and (as ever) I'm not sure if this is betraying my misunderstanding, or indicating that I'm closer to the edge of what's working than I possibly want to be.
If I type the following program into DrRacket,
#lang typed/racket
(: p1 (Integer -> Integer))
(define (p1 i)
(+ i 1))
(module+ test
(require typed/rackunit)
(check-equal? (p1 1) 2))
...and run it, then it works, and the check passes. If, however, I _save_ this file, and run the test again, I get:
Welcome to DrRacket, version 5.3.3 [3m].
Language: typed/racket; memory limit: 128 MB.
. . ../../../Data/LocalApplications/Racket/5.3.3/collects/typed-racket/env/env-req.rkt:9:4: standard-module-name-resolver: cycle in loading
at path: /Users/norman/Desktop/p1.rkt
paths:
/Users/norman/Desktop/p1.rkt
>
It's the change in behaviour on saving that's rather disorienting. I've noticed similar (claimed) cycles with other bits of rackunit+typed-racket. Should I not be using these together?
Given the little flood of typed-racket questions I've unleashed on the list in the last few days (for the answers to which I am of course most grateful), I'm wondering whether I should be steering clear of typed racket for the moment. I'm aware that typed racket is still advertised as a little rough around the edges, but I appear to be running into quite a few head-scratchers, and I suspect I've misunderstood its current intended audience.
All the best,
Norman
--
Norman Gray : http://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK