view tests/sig_impl.ur @ 1820:3c56aa6a0f55

Reduce default inlining thresholds; improve a let-substitution optimization to compensate
author Adam Chlipala <adam@chlipala.net>
date Fri, 14 Sep 2012 07:35:48 -0400
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