On Tue, Mar 31, 2015 at 4:09 PM, William ML Leslie <
[email protected]> wrote:

> On 1 April 2015 at 09:59, Jonathan S. Shapiro <[email protected]> wrote:
>
>> I have answered this several times.
>>
>> f is a *parameter* whose only type information is a fresh type variable.
>> For example:
>>
>> def keean f a b c d  tst {
>>   if tst
>>     f a b
>>   else
>>     f a b c d
>> }
>>
>> So no type signature of any kind for f, as I've said several times now.
>> The procedure definition above is all you have to work with.
>>
>>
> ​I thought that neither the Shapiro nor the Schupke scheme allowed
> underapplied functions?  Ie, disagreement on the native arity of `f` is a
> type error.
>

Not so. Under-application is only a concern for CFN types. All AFN types
ultimately specialize to CFN types, but as long as we can find a suitable
chain of CFN types there is nothing wrong with this application. It's not
the partial application we're trying to restrict. It's the implicit closure
allocation that might happen as a consequence of that application.

It's contrived, but not an error.


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to