
How to add a new method of abstraction
---------------------------------------

------------------------------------------------------------------------------
FILE: abs-generator-YOUR_METHOD_NAME.sml
  
contains a functor that maps a GRAPH to an ABSGEN, where the ABSGEN
signature ("absgen-sig.sml") is:

  type ACTIONparameter
  type CONDITIONparameter
  structure Graph : GRAPH
      local open Graph in
  val  CONDITION : CONDITIONparameter -> (graph -> bool)
  val  ACTION : ACTIONparameter ->
                 ( (node list) ->
                     ( ((node list) * (node list) * absType)))
       end

The two types are often "unit", signifying that the CONDITION
depends only on the graph and the ACTION depends only on the node list.
With "star" abstraction, the ACTION parameter specifies exactly what
sort of stars should be created -- diameter, how to choose hubs, etc.
With "tree" abstraction it specifies what direction trees should grow.

The ACTION function takes a list of nodes as input; initially this is
a list of all nodes in the graph (arbitrarily ordered), in subsequent
calls it is the list returned in the second position by the previous call.
The triple it returns contains this information:
            the set of nodes to be combined,
            the input list without the first node of this set and
            the abstract type is returned.
  The "abstract type" is "Another" if, in fact, the first node of the
  input list is not a suitable starting point for creating an abstract class
  (in which case the set of nodes to be combined is just this node by itself
  and its flag is left untouched) ;
  otherwise the "abstract type" is the constructor (see graph-sig.sml and
  graph.sml) naming the abstraction type, and the node's flag is set to "Stop".

------------------------------------------------------------------------------
FILE: abs-functions.sml
  -- add structure definition at the start
  -- add its mnemonic to the type definition
  -- add its "buildMethod" entry

------------------------------------------------------------------------------
FILE: abs-functions-sig.sml
  -- add mnemonic to the type definition (same as in abs-functions.sml)

------------------------------------------------------------------------------
FILE: graph-sig.sml
  -- add a constructor to "absType"

------------------------------------------------------------------------------
FILE: graph.sml
  -- add a constructor to "absType"  (same as graph-sig.sml)

------------------------------------------------------------------------------
FILE: load-1.sml
  -- add the filename to the list of abs-generators to be "loaded"
