const char *Show_Description(void) {
  return "The `Show` class is used to convert objects to, and from, a `String` "
         "representation. Objects which implement `Show` should expect the "
         "input/output object to be one that support the `Format` class, such "
         "as "
         "`File` or `String`."
         "\n\n"
         "The `print`, `println` and `print_to` functions provide a mechanism "
         "for "
         "writing formatted strings with Cello objects. To do this they "
         "provide a "
         "new format specifier `%$` which uses an object's `Show` "
         "functionality to "
         "write that part of the string. All objects which don't support "
         "`Show` can "
         "still be shown via a default implementation."
         "\n\n"
         "All the Show methods which are variable arguments only take `var` "
         "objects "
         "as input. To print native C types wrap them in Cello types using `$`."
         "\n\n"
         "Standard format specifiers such as `%f` and `%d` will call functions "
         "such "
         "as `c_float` and `c_int` on their passed arguments to convert "
         "objects to "
         "C types before performing the standard C formatting behaviour."
         "\n\n"
         "See [printf](http://www.cplusplus.com/reference/cstdio/printf/) for "
         "more "
         "information on format specifiers.";
}


x86 assembly (clang, -O0):
<Show_Description>:
push   %rbp
mov    %rsp,%rbp
lea    0xef5(%rip),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<Show_Description>:
lea    0xef9(%rip),%rax
ret

LLVM IR (-O0):
@.str = [1026 x i8] c"The `Show` class is used to convert objects to, and from, a `String` representation. Objects which implement `Show` should expect the input/output object to be one that support the `Format` class, such as `File` or `String`.\0A\0AThe `print`, `println` and `print_to` functions provide a mechanism for writing formatted strings with Cello objects. To do this they provide a new format specifier `%$` which uses an object's `Show` functionality to write that part of the string. All objects which don't support `Show` can still be shown via a default implementation.\0A\0AAll the Show methods which are variable arguments only take `var` objects as input. To print native C types wrap them in Cello types using `$`.\0A\0AStandard format specifiers such as `%f` and `%d` will call functions such as `c_float` and `c_int` on their passed arguments to convert objects to C types before performing the standard C formatting behaviour.\0A\0ASee [printf](http://www.cplusplus.com/reference/cstdio/printf/) for more information on format specifiers.\00"
define i8* @Show_Description() {
ret i8* getelementptr inbounds ([1026 x i8], [1026 x i8]* @.str, i64 0, i64 0)
}

LLVM IR (-O2):
@.str = [1026 x i8] c"The `Show` class is used to convert objects to, and from, a `String` representation. Objects which implement `Show` should expect the input/output object to be one that support the `Format` class, such as `File` or `String`.\0A\0AThe `print`, `println` and `print_to` functions provide a mechanism for writing formatted strings with Cello objects. To do this they provide a new format specifier `%$` which uses an object's `Show` functionality to write that part of the string. All objects which don't support `Show` can still be shown via a default implementation.\0A\0AAll the Show methods which are variable arguments only take `var` objects as input. To print native C types wrap them in Cello types using `$`.\0A\0AStandard format specifiers such as `%f` and `%d` will call functions such as `c_float` and `c_int` on their passed arguments to convert objects to C types before performing the standard C formatting behaviour.\0A\0ASee [printf](http://www.cplusplus.com/reference/cstdio/printf/) for more information on format specifiers.\00"
define i8* @Show_Description() {
ret i8* getelementptr inbounds ([1026 x i8], [1026 x i8]* @.str, i64 0, i64 0)
}