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.
smime.p7s
Description: S/MIME cryptographic signature
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users