 			return cfc && !cfc.compiledParams;
 		}
 		
+		private function isFunctionHeader(token:Object):Boolean
+		{
+			var cfc:CompiledFunctionCall = token as CompiledFunctionCall;
+			return cfc && (cfc.evaluatedMethod == operators[FUNCTION] || cfc.evaluatedMethod == operators['=>'])
+				&& cfc.evaluatedParams[0][FUNCTION_CODE] === undefined;
+		}
+		
 		/**
 		 * This will check if the compiled object is a function definition.
 		 * @param compiledObject A compiled object returned by compileToObject().

					tokens.splice(i - 1, 2, new CompiledFunctionCall(tokens[i - 1], call.compiledParams));
			}
			
			// next step: variable assignment, right to left
			while (true)
			{
				i = tokens.length;
				while (i--)
					if (assignmentOperators.hasOwnProperty(tokens[i]))
						break;
				if (i < 0)
					break;
				if (i == 0 || i + 1 == tokens.length)

			if (Math.max(tokens.indexOf('?')) >= 0)
				throw new Error('Invalid conditional branch');
			
			// next step: inline functions (headers only), right to left
			i = tokens.length;
			while (i--)
			{
				if (tokens[i] == FUNCTION)
					tokens.splice(i, 2, compileFunctionHeader(FUNCTION, tokens[i + 1]));
				if (tokens[i] == '=>')
					tokens.splice(i - 1, 2, compileFunctionHeader('=>', tokens[i - 1]));
			}
			
			// next step: function applications
