Currently, in typed/racket, if I have a value of type  (List Number Number 
Symbol String), and I apply 'fourth' to it, I get (U Number Symbol String) 
rather than String.[*]

It looks to me like this is a "didn't get around to it yet" issue, but perhaps 
I'm missing some vital difference between 'cadddr' and 'fourth'. 

> fourth
- : (All (a) ((Listof a) -> a))
#<procedure:fourth>
> cadddr
- : (All (a b c d e) (case-> ((Pairof a (Pairof b (Pairof c (Pairof d e)))) -> 
d : ((! False @ (car cdr cdr cdr) 0) | (False @ (car cdr cdr cdr) 0)) (car cdr 
cdr cdr 0)) ((Listof a) -> a)))
#<procedure:cadddr>
> 

I know that there are some differences between the 'fourth' family and the 
'cadddr' family w.r.t. the kinds of arguments that they accept, but it seems to 
me that if I have a (List Number Number Symbol String), for instance, that I 
should be able to use 'fourth' to get a String.

No?

John



[*] My actual example uses another type Achievement rather than String; I'm 
hoping that's not related here.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to