Stefan, I must apologize for not responding to your mails! Or rather, for responding so late. Apologies in any case.
On Sat 14 May 2011 20:57, Stefan Israelsson Tampe <stefan.ita...@gmail.com> writes: > (macroexpand '(let ((A : integer 1)) A)) > $2 = #<tree-il (let (A) (#{A 110}#) ((const 1)) (lexical A #{A 110}#) > (integer))> Obviously we'd need to type everything else, but OK. I guess my overall reaction here is one of fear. This is really hard to get right. Though I am not against types in tree-il in principle, I have a hard time thinking how this can be a win for Guile. There are two reasons that I know of to use types: one, to avoid run-time type checks. This could be useful to Guile in the future, but we are not fast enough yet for it to matter. Secondly, types can prove things about programs. But I have a hard time thinking how this relates to the untyped parts of Guile, which will always be there. The best work in this area that I know of is Typed Racket, and their treatment of types and contracts. So, to get the advantages of types, I think it needs to be in a context of stealing from Racket. That, in itself, is quite an effort; doable, but it takes commitment. It does not seem to me that half-way approaches are useful. But I really don't know. What do you think? Regards, Andy -- http://wingolog.org/