Foo(a, b, c) Foo( a, b ) Foo( a, [b, c], d ) Foo( a, [ b, c ], d ) ) Foo( a, [b, c], d ) Foo( a, [ b, c ], d )