// File: errantlinguist[P]Forecast/include/common/to_string.hpp
// Function: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> common::to_collection_string<std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, char, char>(std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, std::pair<char, char> const&)
std::string to_collection_string(const C& value,
		const std::pair<LD, RD>& delimiters)
{
	std::stringstream ss(std::stringstream::out);
	ss << delimiters.first;

	auto iter = value.cbegin();
	if (iter != value.cend())
	{
		const std::string firstElementStr(to_quoted_string(*iter));
		ss << firstElementStr;	// Print the first element
		++iter;					// Increment to next element
	}
	for (; iter != value.cend(); ++iter)
	{
		const std::string nextElementStr(to_quoted_string(*iter));
		ss << nextElementStr;					// Print the next element
		ss << SEQUENCE_ELEMENT_SEPARATOR;	// Print separator
	}

	ss << delimiters.second;
	return ss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x218(%rbp)
movq %rdi, %rax
movq %rax, -0x210(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x1a0(%rbp), %rdi
movl $0x10, %esi
callq 0xa360
leaq -0x190(%rbp), %rdi
movq -0x18(%rbp), %rax
movsbl (%rax), %esi
callq 0xa550
jmp 0x3fb6e
movq -0x10(%rbp), %rdi
callq 0x3fd50
movq %rax, -0x1b8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3fdb0
movq %rax, -0x1c0(%rbp)
leaq -0x1b8(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x3fd80
testb $0x1, %al
jne 0x3fbaa
jmp 0x3fc30
leaq -0x1b8(%rbp), %rdi
callq 0x3fde0
movq %rax, %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x38080
jmp 0x3fbc7
leaq -0x190(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0xa240
jmp 0x3fbdc
leaq -0x1b8(%rbp), %rdi
callq 0x3fe10
leaq -0x1e0(%rbp), %rdi
callq 0xa978
jmp 0x3fc30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
jmp 0x3fd29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0xa978
jmp 0x3fd29
jmp 0x3fc32
movq -0x10(%rbp), %rdi
callq 0x3fdb0
movq %rax, -0x1e8(%rbp)
leaq -0x1b8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3fd80
testb $0x1, %al
jne 0x3fc5e
jmp 0x3fce2
leaq -0x1b8(%rbp), %rdi
callq 0x3fde0
movq %rax, %rsi
leaq -0x208(%rbp), %rdi
callq 0x38080
jmp 0x3fc7b
leaq -0x190(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0xa240
jmp 0x3fc90
leaq -0x190(%rbp), %rdi
leaq 0x5e03a(%rip), %rsi     # 0x9dcd8
callq 0xa240
jmp 0x3fca5
leaq -0x208(%rbp), %rdi
callq 0xa978
leaq -0x1b8(%rbp), %rdi
callq 0x3fe10
jmp 0x3fc32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
leaq -0x208(%rbp), %rdi
callq 0xa978
jmp 0x3fd29
leaq -0x190(%rbp), %rdi
movq -0x18(%rbp), %rax
movsbl 0x1(%rax), %esi
callq 0xa550
jmp 0x3fcf8
movq -0x218(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0xa590
jmp 0x3fd0d
leaq -0x1a0(%rbp), %rdi
callq 0xa2c0
movq -0x210(%rbp), %rax
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
leaq -0x1a0(%rbp), %rdi
callq 0xa2c0
movq -0x1a8(%rbp), %rdi
callq 0xa520
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)