(a)=>b; // 1 args (a, b)=>c; // n args ()=>b; // 0 args (a)=>(b)=>c; // func returns func returns func (a)=>((b)=>c); // So these parens are dropped ()=>(b, c)=>d; // func returns func returns func (a)=>{ return b; }; (a)=>"e"; // Dropping the parens