[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