[MLton-devel] phantom types and directed graphs
Stephen Weeks
MLton@mlton.org
Mon, 10 Feb 2003 22:07:13 -0800
I was thinking of using phantom types to improve the static checking
of directed graphs. The idea is to parameterize the graph type with a
phantom parameter that will let us give different graphs different
types. This will help detect errors in confusing nodes from different
graphs. Each graph transformation will allow a new type of graph to
be produced.
signature DIRECTED_GRAPH =
sig
structure Node:
sig
type 'a t
end
type 'a t
val new: unit -> unit t
val newNode: 'a t -> 'a Node.t
val nodes: 'a t -> 'a Node.t list
val transpose: 'a t -> 'b t * {destroy: unit -> unit,
newNode: 'a Node.t -> 'b Node.t}
end
To use it, whenever you want a new graph type, you write down a
datatype and constrain the result of the graph operation.
Any thoughts? Better ways to do it?
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel