Hi,
Some issues about the type system that comes to my mind (some of them might be less important than the others): - no reliable way to figure out whether something is a type specifier or not - no way to portably expand a type specifier by using its definition - practically there is no reflection on types - no easy way to specify a parametric type of strings with less than N characters (this is just an example of the issue: (deftype length-limited-string (limit) ...) due to the limits of satisfies - no portable way to get the inferred type of a function, a variable, etc.
Cheers, levy
On Sep 2, 2009, at 14:12 , Levente Mészáros wrote:
Hi,
Some issues about the type system that comes to my mind (some of them might be less important than the others):
- no reliable way to figure out whether something is a type
specifier or not
Yep. I use
(defun type-specifier-p (ts) (ignore-errors (subtypep ts t)))
- no way to portably expand a type specifier by using its definition
Yep.
- practically there is no reflection on types
Yep.
- no easy way to specify a parametric type of strings with less than
N characters (this is just an example of the issue: (deftype length-limited-string (limit) ...) due to the limits of satisfies
Careful. This opens up a can of worms. There is no way to specify a recursive type either, but this would go really deep.
- no portable way to get the inferred type of a function, a
variable, etc.
Environment access *could* mitigate this problem.
Cheers
Marco
Cheers, levy
-- There's no perfectoin
cltl3-devel mailing list cltl3-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cltl3-devel
-- Marco Antoniotti, Associate Professor tel. +39 - 02 64 48 79 01 DISCo, Università Milano Bicocca U14 2043 Viale Sarca 336 I-20126 Milan (MI) ITALY
Please note that I am not checking my Spam-box anymore.