Commit f2cb826d authored by POTTIER Francois's avatar POTTIER Francois

Merge [Bn] into [Abstraction].

parent 18bf0f3c
......@@ -9,18 +9,18 @@ type ('fn, 'bn) term =
[@@deriving
visitors { variety = "iter"; public = ["visit_term"];
ancestors = ["Bn.iter"; "Abstraction.iter"] }
ancestors = ["Abstraction.iter"] }
,
visitors { variety = "map"; public = ["visit_term"];
ancestors = ["Bn.map"; "Abstraction.map"] }
ancestors = ["Abstraction.map"] }
,
visitors { variety = "endo"; public = ["visit_term"];
ancestors = ["Bn.endo"; "Abstraction.endo"] }
ancestors = ["Abstraction.endo"] }
,
visitors { variety = "reduce"; public = ["visit_term"];
ancestors = ["Bn.reduce"; "Abstraction.reduce"] }
ancestors = ["Abstraction.reduce"] }
,
visitors { variety = "iter2"; public = ["visit_term"];
ancestors = ["Bn.iter2"; "Abstraction.iter2"] }
ancestors = ["Abstraction.iter2"] }
]
......@@ -39,19 +39,19 @@ and ('fn, 'bn) term =
[@@deriving
visitors { variety = "iter"; public = ["visit_term"; "visit_typ"];
ancestors = ["Bn.iter"; "Abstraction.iter"] }
ancestors = ["Abstraction.iter"] }
,
visitors { variety = "map"; public = ["visit_term"; "visit_typ"];
ancestors = ["Bn.map"; "Abstraction.map"] }
ancestors = ["Abstraction.map"] }
,
visitors { variety = "endo"; public = ["visit_term"; "visit_typ"];
ancestors = ["Bn.endo"; "Abstraction.endo"] }
ancestors = ["Abstraction.endo"] }
,
visitors { variety = "reduce"; public = ["visit_term"; "visit_typ"];
ancestors = ["Bn.reduce"; "Abstraction.reduce"] }
ancestors = ["Abstraction.reduce"] }
,
visitors { variety = "iter2"; public = ["visit_term"; "visit_typ"];
ancestors = ["Bn.iter2"; "Abstraction.iter2"] }
ancestors = ["Abstraction.iter2"] }
]
......
type void
(* -------------------------------------------------------------------------- *)
(* A universal, concrete type of single-name abstractions. *)
......@@ -38,6 +40,9 @@ type ('bn, 'term) abstraction =
class virtual ['self] map = object (self : 'self)
method private visit_'bn: void -> void -> void
= fun _ _ -> assert false
method private virtual extend: 'bn1 -> 'env -> 'bn2 * 'env
method private visit_abstraction: 'term1 'term2 .
......@@ -52,6 +57,9 @@ end
class virtual ['self] endo = object (self : 'self)
method private visit_'bn: void -> void -> void
= fun _ _ -> assert false
method private virtual extend: 'bn -> 'env -> 'bn * 'env
method private visit_abstraction: 'term .
......@@ -70,6 +78,9 @@ end
class virtual ['self] reduce = object (self : 'self)
method private visit_'bn: void -> void -> void
= fun _ _ -> assert false
method private virtual extend: 'bn -> 'env -> 'env
method private virtual restrict: 'bn -> 'z -> 'z
......@@ -94,6 +105,9 @@ end
class virtual ['self] map2 = object (self : 'self)
method private visit_'bn: void -> void -> void -> void
= fun _ _ _ -> assert false
method private virtual extend: 'bn1 -> 'bn2 -> 'env -> 'bn3 * 'env
method private visit_abstraction: 'term1 'term2 'term3 .
......@@ -108,6 +122,9 @@ end
class virtual ['self] reduce2 = object (self : 'self)
method private visit_'bn: void -> void -> void -> void
= fun _ _ _ -> assert false
method private virtual extend: 'bn1 -> 'bn2 -> 'env -> 'env
method private virtual restrict: 'bn1 -> 'bn2 -> 'z -> 'z
......
type void
class ['self] iter = object
method private visit_'bn: void -> void -> void
= fun _ _ -> assert false
end
class ['self] map = object
method private visit_'bn: void -> void -> void
= fun _ _ -> assert false
end
class ['self] endo = object
method private visit_'bn: void -> void -> void
= fun _ _ -> assert false
end
class ['self] reduce = object
method private visit_'bn: void -> void -> void
= fun _ _ -> assert false
end
class ['self] iter2 = object
method private visit_'bn: void -> void -> void -> void
= fun _ _ _ -> assert false
end
class ['self] map2 = object
method private visit_'bn: void -> void -> void -> void
= fun _ _ _ -> assert false
end
class ['self] reduce2 = object
method private visit_'bn: void -> void -> void -> void
= fun _ _ _ -> assert false
end
Atom
Abstraction
Bn
KitBa
KitCopy
KitAvoid
......
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