[Ur] Now using queryL1 instead of queryX1 - No longer getting monadic IO "unification failure" errors, now just getting mismatched tag errors
    Stefan Scott Alexander 
    stefanscottalexx at gmail.com
       
    Sun Jul 19 03:28:18 EDT 2015
    
    
  
Hello -
As reported in my previous posts...
http://www.impredicative.com/pipermail/ur/2015-July/002064.html
http://www.impredicative.com/pipermail/ur/2015-July/002067.html
...I was previously getting errors involving "unification failure" and
"incompatible types".
Adam correctly surmised that these were probably due to my incorrect use of
syntax for monadic IO:
http://www.impredicative.com/pipermail/ur/2015-July/002065.html
I have now revised the code used in my previous post, and uploaded the
revised code (still not quite working yet - no longer generating errors
regarding monadic IO, but still generating some mismatched tag errors,
etc.) to a new, separate github repo, here:
https://github.com/StefanScott/urweb-crud2foreign-queryL1
The error messages are shown in Issue 1 on that github repo, here:
https://github.com/StefanScott/urweb-crud2foreign-queryL1/issues/1
In this revised version, I have changed the portions which formerly used
'Top.queryX1' (or 'Top.oneRowE1') and 'return' and ';':
  Widget = (fn [nm :: Name] =>
  statusOptions <-
    queryX1 (SELECT Id, Nam FROM status ORDER BY Nam)
    (fn r => <xml><coption value={r.Id}>{r.Nam}</coption></xml>);
    return;
    <xml>
      <select{nm}>
        {statusOptions}
      </select>
    </xml>)
Now use 'let val ... in' and 'Top.queryL1' and 'List.MapX':
  Widget = (fn [nm :: Name] =>
    let
      val statusOptionsTxn =
        queryL1 (SELECT Id, Nam FROM status ORDER BY Nam)
      val statusOptions =
        List.MapX
          (fn r => <xml><option>{r.Nam}</option></xml>)
          statusOptionsTxn
    in
      <xml>
        <select{nm}>
          {statusOptions}
        </select>
      </xml>)
Questions:
(1) Am I heading in the right direction?
(2) I am no longer getting error messages about "unification failure" or
"incompatible types" due to incorrect monadic IO. But I am still getting
some other (less "serious"?) error messages now involving mismatched tags,
eg:
crud2foreign.ur:76:27: (to 76:32) Begin tag <xml> and end tag </option>
don't match.
crud2foreign.ur:76:56: (to 77:30) syntax error: deleting  XML_END RPAREN
SYMBOL
crud2foreign.ur:78:8: (to 78:10) syntax error: replacing  IN with  LBRACE
crud2foreign.ur:83:16: (to 83:18) syntax error: deleting  RPAREN COMMA
crud2foreign.ur:85:24: (to 99:13) This is an expression but not a pattern.
crud2foreign.ur:99:12: (to 99:13) syntax error: replacing  RPAREN with
 UNDER
crud2foreign.ur:105:16: (to 105:58) This is an expression but not a pattern.
crud2foreign.ur:105:27: (to 105:46) This is an expression but not a pattern.
crud2foreign.ur:105:17: (to 105:57) This is an expression but not a pattern.
crud2foreign.ur:105:36: (to 105:45) This is an expression but not a pattern.
crud2foreign.ur:109:16: (to 109:16) syntax error: inserting  DARROW
crud2foreign.ur:115:0: (to 115:0) syntax error found at EOF
Note: I recall from an old Ur/Web FAQ that such error messages about
mismatched tags may be misleading (ie, they are actually due to *other*
errors, further down in the code):
http://www.impredicative.com/wiki/index.php/Ur_FAQ
Apparently there are still some errors in my code - perhaps involving
parens, braces, or other delimiters such as 'let ... in ... end' or closing
tags?
Thanks if anyone can provide any insight on these errors involving "mismatched
tag" etc.
###
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20150719/5e73ec3c/attachment.html>
    
    
More information about the Ur
mailing list