~/NetBeansProjects/jruby ➔ cat fib.rb class Fib def fib(n) {n => :fixnum} if n < 2 n else fib(n - 1) + fib(n - 2) end end end~/NetBeansProjects/jruby ➔ jru-rcompiler/duby/plugin/math lib/ruby/site_ruby/1.8/compiler/duby/typer2.rb fib.rb AST: Script ClassDefinition(Fib) MethodDefinition(fib) {:return=>Type(fixnum), :n=>Type(fixnum)} Arguments RequiredArgument(n) Body Noop If Condition Call(<) Local(name = n, scope = MethodDefinition(fib)) Fixnum(2) Local(name = n, scope = MethodDefinition(fib)) Call(+) FunctionalCall(fib) Call(-) Local(name = n, scope = MethodDefinition(fib)) Fixnum(1) FunctionalCall(fib) Call(-) Local(name = n, scope = MethodDefinition(fib)) Fixnum(2)