@@ -93,30 +93,30 @@ class any {
9393
9494 class closure {
9595 public:
96− virtual any operator()(const any&) = 0;
96+ virtual auto operator()(const any&) const -> any = 0;
9797 };
9898
9999 template <typename T>
100100 class _closure : public closure {
101− T lambda;
101+ const T lambda;
102102 public:
103103 _closure(const T& l) noexcept : lambda(l) {}
104− any operator()(const any& arg) {
104+ auto operator()(const any& arg) const -> any {
105105 return lambda(arg);
106106 }
107107 };
108108
109109 class eff_fn {
110110 public:
111− virtual any operator()() = 0;
111+ virtual auto operator()() const -> any = 0;
112112 };
113113
114114 template <typename T>
115115 class _eff_fn : public eff_fn {
116− T lambda;
116+ const T lambda;
117117 public:
118118 _eff_fn(const T& l) noexcept : lambda(l) {}
119− any operator()() {
119+ auto operator()() const -> any {
120120 return lambda();
121121 }
122122 };