1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
structure Set = struct datatype Set = S end
signature FINMAPEQ = sig type map val dom : map -> Set.Set end
functor FinMapEq() = struct datatype map = M fun dom m = Set.S end
signature TOOLS =
sig
structure FinMapEq : FINMAPEQ
end
functor Tools (): TOOLS = struct structure FinMapEq = FinMapEq() end
(*
functor Basics(structure Tools : sig
structure FinMapEq : sig type map val dom : map -> Set.Set end
end) =
*)
functor Basics(structure Tools : TOOLS) =
struct
structure Tools = Tools
end
functor KitCompiler() =
struct
structure Tools = Tools()
structure Basics = Basics(structure Tools = Tools)
end
structure K = KitCompiler()
|