@@ -144,12 +144,12 @@ namespace purescript {
144144
145145 }; // class boxed::weak
146146
147− class ref {
147+ class recur {
148148 std::shared_ptr<boxed> sptr;
149149 std::shared_ptr<boxed::weak> wptr;
150150
151151 public:
152− ref() : sptr(std::make_shared<boxed>())
152+ recur() : sptr(std::make_shared<boxed>())
153153 , wptr(std::make_shared<boxed::weak>(*sptr)) {}
154154
155155 operator const boxed&() const {
@@ -169,7 +169,7 @@ namespace purescript {
169169 }
170170
171171 template <typename T>
172− auto operator=(T&& right) -> ref& {
172+ auto operator=(T&& right) -> recur& {
173173 *sptr = std::forward<T>(right);
174174 *wptr = *sptr;
175175 return *this;
@@ -178,7 +178,7 @@ namespace purescript {
178178 class weak {
179179 std::shared_ptr<boxed::weak> wptr;
180180 public:
181− weak(const ref& r) : wptr(r.wptr) {}
181+ weak(const recur& r) : wptr(r.wptr) {}
182182
183183 operator boxed() const {
184184 return *wptr;
@@ -191,8 +191,8 @@ namespace purescript {
191191 auto operator()(const boxed& arg) const -> boxed {
192192 return static_cast<boxed>(*wptr)(arg);
193193 }
194− }; // class ref::weak
195− }; // class boxed::ref
194+ }; // class recur::weak
195+ }; // class boxed::recur
196196
197197 }; // class boxed
198198