Commit add0d365 authored by POTTIER Francois's avatar POTTIER Francois

The functor no longer needs to request a [reduce] visitor.

parent 80c14000
......@@ -10,10 +10,7 @@ module type INPUT = sig
(* The private virtual method [visit_'fn] is used to specify what should
be done at free name occurrences. The private virtual method [extend]
is used to indicate how the environment should be extended when an
abstraction is entered. In the [reduce] visitor, the private methods
[zero] and [plus] are used to specify how summaries should be computed,
while the private method [restrict] is used to specify how a summary
should be restricted when an abstraction is exited. *)
abstraction is entered. *)
(* Suppose the data constructor for variables is named [TVar], so that
the method [visit_TVar] is used to specify what behavior at variables
......@@ -39,15 +36,6 @@ module type INPUT = sig
method private visit_TVar : 'env -> ('bn, 'fn) term -> 'fn -> ('bn, 'fn) term
end
class virtual ['self] reduce : object ('self)
method private virtual extend : 'bn -> 'env -> 'env
method private virtual visit_'fn : 'env -> 'fn -> 'z
method private virtual zero : 'z
method private virtual plus : 'z -> 'z -> 'z
method private virtual restrict : 'bn -> 'z -> 'z
method visit_term : 'env -> ('bn, 'fn) term -> 'z
end
class virtual ['self] iter2 : object ('self)
method private virtual extend : 'bn1 -> 'bn2 -> 'env -> 'env
method private virtual visit_'fn : 'env -> 'fn1 -> 'fn2 -> _
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment