>>534
unapplyはカリー化しても実質的に意味が無い。というのは、

case Cons(hd)(tl) => ...

みたいなのは「構文レベルで」駄目なことになってるので。ちなみに、unapplyの
返り値型は Option[(A, List[A])]。これは個別に覚えて無くても大丈夫で、
case classで自動生成されるunapplyの型は、プライマリコンストラクタ引数
列をタプルとして、それを単にOptionでラップしたものになる。