view tests/type_classMod2.ur @ 1824:216e92b39fc1

Paranoid inlining prevention for FFI types at the Core level; less paranoid inlining promotion for passive values at the Mono level
author Adam Chlipala <adam@chlipala.net>
date Wed, 19 Sep 2012 18:01:22 -0400
parents 71bafe66dbe1
children
line wrap: on
line source
signature S = sig
        class c
        val default : t :: Type -> c t -> t

        val string_c : c string
        val int_c : c int
end

structure M : S = struct
        class c t = t
        val default = fn t :: Type => fn v : c t => v

        val int_c : c int = 0
        val string_c : c string = "Hi"
end

val hi = M.default [string] _
val zero = M.default [int] _