I have I have a function with two arguments that I have to pattern match over. If I use currying on the first pattern it won't compile:

```
  drop' :: Int -> [a] -> [a] 
  drop' 0  = id -- ghci: "Equations for drop' have different numbers of arguments"
  drop' n (x:xs) = drop' (n-1) xs

```

The compiler gives this output: 

```
99.hs:106:3:
Equations for drop' have different numbers of arguments
  99.hs:106:3-15
  99.hs:107:3-33
In an equation for `split':
    split xs n
      = (take' n xs, drop' n xs)
      where
          take' 0 _ = []
          take' n (x : xs) = x : take (n - 1) xs
          drop' 0 = id
          drop' n (x : xs) = drop' (n - 1) xs  
 Failed, modules loaded: none.

```

If I only give the curried pattern, however, then it compiles:

```
  drop' :: Int -> [a] -> [a] 
  drop' 0  = id -- compiles

```

What gives?