Re: The Paradox of Partial Parametricity

>      class AsyncTable<T,U> {
>>         constructor() {
>>             this.m = Map<T,U>(); // encapsulation doesn't matter for this
>> example
>>         }
>>         set(keyP :Promise<T>, val :U) {
>>             keyP.then(key => { this.m.set(key, val) });
>>         }
>>         get(keyP :Promise<T>) :Promise<U> {
>>             return keyP.then(key => this.m.get(key));
>>         }
>>     }
>>
>>
The way to make this work would be to lift the value stored in the map.

    get(keyP :Promise<T>) :Promise<U> {
        return keyP.then(key => Q.fullfill(this.m.get(key)));
    }

Do you agree?  Is your premise that forgetting such a "lawyer-ly" detail
will amount to a foot-gun?

{ Kevin }

Received on Friday, 10 May 2013 13:58:59 UTC