On 10/23/2012 05:19 PM, Danny Yoo wrote:
#lang typed/racket/base
;; We may have more information about the lambda's name. This will show it.
(define-struct: LamPositionalName ([name : Symbol]
[path : String] ;; the source of the name
[line : Natural]
[column : Natural]
[offset : Natural]
[span : Natural]) #:transparent)
(: current-defined-name (Parameterof (U Symbol LamPositionalName)))
(define current-defined-name (make-parameter 'unknown))
To add, I can work around this behavior by doing:
(: UNKNOWN Symbol)
(define UNKNOWN 'unknown)
(: current-defined-name (Parameterof (U Symbol False LamPositionalName)))
(define current-defined-name (make-parameter UNKNOWN))
That looks to me like a problem with the inferencer. It's *something*
with the inferencer, because you can work around it by annotating:
(: current-defined-name (Parameterof (U Symbol LamPositionalName)))
(define current-defined-name (make-parameter (ann 'unknown Symbol)))
I just don't know whether it's technically an error in TR.
Neil ⊥
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev