return [] for tail; return null from min/max