I'm sorry to keep pestering this list, but I'm out of my depth with the 
detailed syntax (and semantics) of typed Racket.  But I'm doggedly 
ploughing on.

I'm having trouble with the 'let' line in the 'pointer-to' function listed 
later:

(let ([vt : Ffi-type (cast ((inst hash-ref Ffi-type Ffi-type) type-to-vector 
type #f) Ffi-type)])

Yes, there's an unbalanced parenthesis because this sin't the end of the 
let-expression.

The error message is

 let: expected type-annotated identifier
  parsing context: 
   while parsing annotated-binding
   while parsing optionally type-annotated binding in: (vt : Ffi-type (cast 
((inst hash-ref Ffi-type Ffi-type) type-to-vector type #f) Ffi-type))

I can't see the error.  'vt : Ffi-type' looks like a type-annotated 
identifier to me.  And it seems to have the right number of parentheses 
in front of it, followed by an expression whose vlue is to be bound to 
'vt'.

Here's the function it's part of:


(define (pointer-to [type : T-Type] . [args : T-Size]) : T-Type ; TODO: rename 
args to size-args
  (if (and (equal? args '(1)) (not (eq? type '_void)))
    (mode-dependent-type
      `(_ptr i ,type) `(_ptr o ,type))
    (case type
      ((_void) '_pointer/intptr)
      ((_byte _uint8) (mode-dependent-type 
                        '_string*/utf-8 
                        (if (null? args)
                          '_bytes
                          `(_bytes o ,@ args))))
      (else
        (let ([vt : Ffi-type (cast ((inst hash-ref Ffi-type Ffi-type) 
type-to-vector type #f) Ffi-type)])
          (if vt
            (mode-dependent-type
              `(,vt i)
              (if (null? args) 
                vt
                `(,vt o ,@ args))) 
            (mode-dependent-type
              `(_vector i ,type)
              (if (null? args) 
                '_pointer
                `(_vector o ,type ,@ args)))))))))

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/20200530173230.bsrp5skkc35ot34h%40topoi.pooq.com.

Reply via email to