@@ -93,30 +93,30 @@ class any {
94 class closure {
94 class closure {
96− virtual any operator()(const any&) = 0;
96+ virtual auto operator()(const any&) const -> any = 0;
99 template <typename T>
99 template <typename T>
100 class _closure : public closure {
100 class _closure : public closure {
101− T lambda;
101+ const T lambda;
103 _closure(const T& l) noexcept : lambda(l) {}
103 _closure(const T& l) noexcept : lambda(l) {}
104− any operator()(const any& arg) {
104+ auto operator()(const any& arg) const -> any {
105 return lambda(arg);
105 return lambda(arg);
109 class eff_fn {
109 class eff_fn {
111− virtual any operator()() = 0;
111+ virtual auto operator()() const -> any = 0;
114 template <typename T>
114 template <typename T>
115 class _eff_fn : public eff_fn {
115 class _eff_fn : public eff_fn {
116− T lambda;
116+ const T lambda;
118 _eff_fn(const T& l) noexcept : lambda(l) {}
118 _eff_fn(const T& l) noexcept : lambda(l) {}
119− any operator()() {
119+ auto operator()() const -> any {
120 return lambda();
120 return lambda();