should use Nil for empty lists