[Ur] Unification Problems

Adam Chlipala adamc at csail.mit.edu
Sun Oct 21 18:16:35 EDT 2012


That didn't turn out to be it.  Your [main] function is ambiguous; it's 
not obvious from the code there now that it returns standalone pages.  
You can use type annotations in your .ur file to indicate the type, but 
it would be better to create a .urs file declaring [main] as in most of 
the demos.

On 10/21/2012 05:55 PM, David Snider wrote:
> Ah, OK...
>
> Here is the whole source:
> http://pastebin.com/EZMqZVkd
>
> Is it that it can't decide whether to take it from the User table 
> record or the cookie record?
>
> On 10/21/2012 05:42 PM, Adam Chlipala wrote:
>> I need more context to give a complete answer.  The error message 
>> means that some type is not uniquely determined, and the message will 
>> show you where the undetermined type appears.
>>
>> My first guess, though: Start the function declaration like this:
>>     fun checkPassword (r : {Email : string, Password : string}) =
>>
>> Otherwise, there might be other fields in [r].
>>
>> On 10/21/2012 05:39 PM, David Snider wrote:
>>> What's the correct way of doing this?
>>>
>>> Error: Some constructor unification variables are undetermined in 
>>> declaration
>>>
>>> cookie userSession : { Email : string, Password : string }
>>>
>>> ... snip ...
>>>
>>> fun checkPassword r =
>>> let
>>>    val cryptPass = {Email=r.Email, Password=Sha.hash r.Password}
>>> in
>>>    re' <- oneOrNoRows1(SELECT user.Id
>>>                         FROM user
>>>                        WHERE user.Email = {[cryptPass.Email]}
>>>                          AND user.Password = {[cryptPass.Password]});
>>>    case re' of
>>>       None => return False
>>>     | Some re => setCookie userSession { Value = cryptPass, 
>>> Expires=None,Secure=False };
>>>       return True
>>> end
>>
>>
>> _______________________________________________
>> Ur mailing list
>> Ur at impredicative.com
>> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
>
>
> _______________________________________________
> Ur mailing list
> Ur at impredicative.com
> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur




More information about the Ur mailing list