#lang planet chongkai/sml functor H(A : sig type t type s val a : s sharing type t = s val pr : t -> string end) = struct structure A1 : sig type t val pr : t -> string end = A structure A2 = F(A1) structure A3 = G(A) val a = A2.A A.a val _ = print ("value is " ^ A2.pr a ^ "\n") end