Should probably be `range.front` instead of `range[0]`, as the latter would require `range` support random access