[Ur] "Invalid Link expression" when pulling a function out of a record

Benjamin Barenblat bbaren at mit.edu
Wed Feb 27 16:55:47 EST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Howdy all,

The following code works, producing a page with a single link back to
itself.

    fun makeLink (r : { Target : (unit -> transaction page) }) : xbody =
        <xml>
          <a link={r.Target ()}>call</a>
        </xml>

    fun main () =
        return <xml>
          <body>
    	{makeLink { Target = main }}
          </body>
        </xml>

I've tried changing 'makeLink' to work on arbitrary names, as long as
the record only has one.

    fun makeLink [nm ::: Name] (r : { nm : (unit -> transaction page) }) : xbody =
        <xml>
          <a link={r.nm ()}>call</a>
        </xml>

    fun main () =
        return <xml>
          <body>
    	{makeLink { Target = main }}
          </body>
        </xml>

However, attempting to compile this yields

    test.ur:3:15: (to 3:22) Invalid Link expression
    Expression UNBOUND_0.UNBOUND_0 {}

I have no clue what's going on here.  What does "Invalid Link
expression" mean?

Thanks in advance,
Benjamin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBCgAGBQJRLoBAAAoJENVJj+fkAhteInsH/AqldnoqL7NAmN4iqBEeMviG
kEXWuy1SW/wZLLQQ7XLWPSPSLokTgsY1P3A1nCwFbG57MF5auBcwZOuesKt5xAhR
idfnUZILj0H8jKikERI5BmZsOjlBDh1be2xHN1fDo/QvXnmJMTB89dqWG4OvBHvk
69yoJBBRQi2uj2GYBgm9V4wkY/qaX9imwONSOBAl89KeacBIcKFEQ/jIX73sXWbD
HxKM9RPrWWK+yQdMWogsWK0GTzndkzm3M7mzVjD3/fQoMLfo/p4FydLwgqSvhmqj
zTH2vya0Q1GY3Hp/yP/sS4zAIxSCcBzCyWzrp8mv9dBcaKFCq4x0L521Uu1DQGg=
=yTqT
-----END PGP SIGNATURE-----




More information about the Ur mailing list