Author: | kssreeram |
---|---|
Mode: | text |
Date: | Mon, 2 Aug 2010 20:55:57 |
in lib-clay: ------------ variant Lambda[In,Out]; [...ArgTypes,Out] overload call(f:Lambda[(...ArgTypes),Out], ...args:ArgTypes) { return forward ...call(*f, ...args); } in compiler: ------------ for a lambda/block which has type annotations for all arguments: 1) infer the return type(s) 2) declare variant membership: instance Lambda[In,Out] = <generated lambda type>;