Get all examples compiling, though output is not correct
[fur] / examples / 19_cycles.fur
1 # Environment A is created here
2
3 # outer references environment A
4 def outer() do
5   # Environment B is created here referencing A
6
7   # middle references environment B
8   def middle() do
9     # Environment C is created here referencing B
10
11     # inner references environment C
12     def inner() do
13       # This is never executed
14       42
15     end
16
17     inner
18     # At this point, environment C falls out of scope
19     # However, environment C is still referenced by inner, which is being returned
20   end
21
22   variable = middle()
23   # Now environment B -> variable -> inner -> C -> B
24
25   42
26   # Nothing from the cycle is returned and B falls out of scope
27   # All references are lost, but reference counts are still > 0 because of the cycle
28 end
29
30 print(outer())