annotate tests/type_classMod.ur @ 711:7292bcb7c02d

Made type class system very general; demo compiles
author Adam Chlipala <adamc@hcoop.net>
date Thu, 09 Apr 2009 12:31:56 -0400
parents 71bafe66dbe1
children
rev   line source
adamc@217 1 structure M = struct
adamc@217 2 structure N = struct
adamc@217 3 class c t = t
adamc@217 4 val string_c : c string = "Hi"
adamc@217 5 end
adamc@217 6 end
adamc@217 7
adamc@217 8 val c : t :: Type -> M.N.c t -> t =
adamc@217 9 fn t :: Type => fn pf : M.N.c t => pf
adamc@217 10 val hi = c [string] _
adamc@217 11
adamc@217 12 val bool_c : M.N.c bool = True
adamc@217 13 val true = c [bool] _
adamc@217 14 val hi = c [string] _
adamc@217 15
adamc@217 16 con c = M.N.c
adamc@217 17 val int_c : c int = 0
adamc@217 18 val zero = c [int] _