A type which can represent a segment as a value.
using value_type = std::string;
This type allows for making a copy of a segment where ownership is retained in the copy.