reworking type/argument parsing to support function pointer madness; removed special treatment of () after the lambda keyword