Some more questions

1 view
Skip to first unread message

Ben Chambers

unread,
Oct 23, 2007, 11:53:38 PM10/23/07
to Cat Language
First off, let me say that I haven't forgotten about Scheme Cat, in
fact I've been reading some papers on type inferencing, and I'm
thinking of implementing Local Type Inference (since it supports
subtyping) to see how it compares to what you have going so far. I've
just been bogged down in other project work :D

I was reading through some of the issues on Cat and came across a
couple that I just wanted to make sure I understand. First: issue 20
says the following is an invalid type: ('A -> 'B) -> ('A -> 'B). I
tend to agree, and was leaning towards asking such a question. I am
curious as to why you consider this invalid (I can see a couple
reasons it could be bad). For instance, it doesn't reduce the stack
(but that doesn't seem reasonable, dup doesn't).

Also, issue 27 says that some recursive programs such as "dup apply"
is no longer legal. How is "dup apply" a recursive program? Ah, I
think I see why -- it's not a recursive program, persay, but the type
would have to be recursive? Is this correct?

Anyways, keep up the good work, and hopefully I can get around to
working on Scheme-Cat some more in the near future.

Christopher Diggins

unread,
Oct 24, 2007, 12:11:33 AM10/24/07
to catla...@googlegroups.com
On 10/23/07, Ben Chambers <bjcha...@gmail.com> wrote:
>
> First off, let me say that I haven't forgotten about Scheme Cat, in
> fact I've been reading some papers on type inferencing, and I'm
> thinking of implementing Local Type Inference (since it supports
> subtyping) to see how it compares to what you have going so far. I've
> just been bogged down in other project work :D

Don't forget to check out Cardelli's paper on implementing polymorphic
type inference.

> I was reading through some of the issues on Cat and came across a
> couple that I just wanted to make sure I understand. First: issue 20
> says the following is an invalid type: ('A -> 'B) -> ('A -> 'B). I
> tend to agree, and was leaning towards asking such a question. I am
> curious as to why you consider this invalid (I can see a couple
> reasons it could be bad).

Because it is missing the outer paranthesis. It should be: (('A -> 'B)
-> ('A -> 'B))

> For instance, it doesn't reduce the stack
> (but that doesn't seem reasonable, dup doesn't).

Correct. Stack reduction doesn't matter.

> Also, issue 27 says that some recursive programs such as "dup apply"
> is no longer legal. How is "dup apply" a recursive program? Ah, I
> think I see why -- it's not a recursive program, persay, but the type
> would have to be recursive? Is this correct?

Yes that is what I meant.

> Anyways, keep up the good work, and hopefully I can get around to
> working on Scheme-Cat some more in the near future.

Thanks, I am very excited by your work and I look forward to future releases.

- Christopher

Christopher Diggins

unread,
Oct 24, 2007, 3:17:04 AM10/24/07
to catla...@googlegroups.com
On 10/24/07, Christopher Diggins <cdig...@gmail.com> wrote:
> On 10/23/07, Ben Chambers <bjcha...@gmail.com> wrote:
> >
> > First off, let me say that I haven't forgotten about Scheme Cat, in
> > fact I've been reading some papers on type inferencing, and I'm
> > thinking of implementing Local Type Inference (since it supports
> > subtyping) to see how it compares to what you have going so far. I've
> > just been bogged down in other project work :D
>
> Don't forget to check out Cardelli's paper on implementing polymorphic
> type inference.

Links to the paper, and some of my comments are available here:
http://cdiggins.com/2007/07/27/the-cats-progress-slow-and-stealthy/

- Christopher Diggins

Reply all
Reply to author
Forward
0 new messages