view tests/sig_impl.ur @ 1533:75d77fbe7c94

Distribute applications of "arrow type" ECase across branches.
author Karn Kallio <kkallio@eka>
date Fri, 12 Aug 2011 00:55:57 -0430
parents 71bafe66dbe1
children
line wrap: on
line source
signature S = sig
        type t
        val x : t
end

structure M : S = struct
        val x = 0
end

signature S = sig
        con r :: {Type}
        val x : $r
end

structure M : S = struct
        val x = {A = 0, B = "Hi"}
end

signature S = sig
        type t
        con r :: {Type}
        val x : t -> $r
end

structure M : S = struct
        val x = fn v : int => {A = 0, B = "Hi"}
end

signature S = sig
        con nm :: Name
        con t :: Type
        con r :: {Type}
        val x : $([nm = t] ++ r)
end

structure M : S = struct
        val x = {A = 0, B = "Hi"}
end

signature S = sig
        con nm :: Name
        con r :: {Type}
        val x : $([nm = int] ++ r)
end

structure M : S = struct
        val x = {A = 0, B = "Hi"}
end

signature S = sig
        con nm :: Name
        con r :: {Type}
        val x : $([nm = string] ++ r)
end

structure M : S = struct
        val x = {A = 0, B = "Hi"}
end