- Macro expansion - Binding - var lambdas - Linking(var lambdas) -Typechecker::check_with_args(template, ()) - lambdas = Lambda Collection <- fills registry - Specializing call, say (tak int int int) - found in lambdas: (tak any any any)->any - var local_lambdas - recurse Linking(var local_lambdas): - TypeChecker::check_with_args(template, args) - local_lambdas = Lambda Collection - Specializing .... - TCO