view tests/caseMod.ur @ 2142:3288e3c9948b

Fix XML indentation in Emacs mode The return value of MATCH-STRING is a string. At least on Emacs 25, the comparisons between string and character with EQUAL could never succeed, and so the cases for matching braces were never triggered. GET-TEXT-PROPERTY may return a list rather than an atom (for example, on long lines with whitespace-mode turned on), and this broke the heuristic of looking for the tag face in previous text.
author Julian Squires <julian@cipht.net>
date Mon, 04 May 2015 14:35:07 -0400
parents 71bafe66dbe1
children
line wrap: on
line source
structure M = struct
        datatype t = A | B
end

val f = fn x : M.t => case x of M.A => M.B | M.B => M.A

datatype t = datatype M.t

val g = fn x : t => case x of M.A => B | B => M.A

structure N = struct
        datatype u = C of t | D
end

val h = fn x : N.u => case x of N.C x => x | N.D => M.A

datatype u = datatype N.u

val i = fn x : u => case x of N.C x => x | D => M.A

val toString = fn x =>
        case x of
            C A => "C A"
          | C B => "C B"
          | D => "D"

val rec page = fn x => <html><body>
        {cdata (toString x)}<br/>
        <br/>

        <a link={page x}>Again!</a>
</body></html>

val main : unit -> page = fn () => <html><body>
        <li> <a link={page (C A)}>C A</a></li>
        <li> <a link={page (C B)}>C B</a></li>
        <li> <a link={page D}>D</a></li>
</body></html>