More general types of list functions

Hello,

I've started to do your exercises and right in `Course.List` I've faced that for check that some prop is true – I have to tell ghci what type I want List to be.

```haskell
> let x = (1 :. 2 :. 3 :. 4 :. Nil) :: List Int
> foldLeft (-) (sum x) x == 0
True
```

If I don't make type of my list explicit – I have two exceptions about matching types `Integer` and `Int`.

Maybe we should make types of needed functions more general?