fun fun2 case case2 lambda lambda2 newtype newtype2