[Ur] Invalid Link expression (again)
Sergey Mironov
grrwlf at gmail.com
Thu Aug 8 17:11:30 EDT 2013
2013/8/9 Adam Chlipala <adamc at csail.mit.edu>:
> On 08/08/2013 04:33 PM, Sergey Mironov wrote:
>>
>> Hi. I've run into the same problem when passing link generator as an
>> argument (see 'template' function at [1]). Is there any way to help Ur
>> in generating correct link without using functors? Maybe build<a></a>
>> explicitly using xml values like
>>
>> fun makeLink f =
>> let a = xml ... black magic .. in a
>>
>> [1] - https://github.com/grwlf/foocms/blob/master/tst/room2/main.ur
>>
>
>
> There's a good chance this will work fine if you just swap the order of the
> first two arguments to [template]. The compiler auto-specializes functions
> to statically known _prefixes_ of their arguments, so if the [state] isn't
> statically known, your current version will fail to get specialized to a
> form without first-class function arguments, while the swapped version might
> succeed.
(sorry for not replying to all)
No, no luck here. I've updated [1] to the version with arguments swapped
*update*
I've just noticed that my version of urweb was not the latest
(20120807). After updating to latest, urweb no longer unifies [1]. It
says (*see below*). Do we have some canges there ?
[grwlf at greyblade ~/proj/foocms/tst/room2 ]$ urweb -dbms sqlite -dumpTypes app
/home/grwlf/proj/foocms/tst/room2/main.ur:13:27: (to 13:33) Unification failure
Expression:
fn reload :
{Lang : string} -> transaction (xml ([Html = ()]) ([]) ([])) =>
fn st : {Lang : string} =>
fn body :
{} ->
tag <UNIF:U149::{Type}> ([Html = ()])
(([Body = ()]) ++ <UNIF:U216::{Unit}>) <UNIF:U152::{Type}>
<UNIF:X::{Type}> =>
...
More information about the Ur
mailing list