[Ur] Grammar/Parser bug?

Saulo Araujo saulo2 at gmail.com
Fri Oct 7 08:42:45 EDT 2016


Hi,

I am trying to do something like

signature ARGUMENTS = sig
    con n1 :: Name
    con t1 :: Type
    con t2 :: {Type}
    constraint [n1] ~ t2
end

signature RESULT = sig
    type t
end

functor Functor(A : ARGUMENTS) : RESULT where type t = $([A.n1 = A.t1] ++
A.t2) = struct
    open A

    type t = $([n1 = t1] ++ t2)
end

but the Ur/Web compiler complains saying:

test.ur:12:58: (to 12:60) syntax error: deleting  CSYMBOL DOT
Parse failure

Apparently, one cannot construct type-level records by projecting name
variables from a module. Is this a grammar/parser bug? If so, is there a
workaround?

Sincrely,
Saulo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20161007/391dcde9/attachment.html>


More information about the Ur mailing list