Get the concrete (including terminal escape sequences)
        representation of this string.

        :parameter Terminal terminal: The terminal object to use for turning
            formatting attributes such as :attr:`Root.format.blue` into
            concrete escape sequences.
        :parameter styles: An object from which to look up style definitions,
            which ultimately resolve to escape sequences, but may resolve to
            other intermediaries, including other styles.
        :type styles: StylePlaceholderFactory or dict
        :parameter str default_esc_seq: FIXME
        :returns str: Returns a concrete string, containing all the escape
            sequences required to render the string to the terminal with the
            desired formatting.

        .. note::
            All parameters are optional, and will be populated with sensible
            defaults if ommitted. This is to assist testing and experimentation
            with lower-level parts of Junction. If you want to use a
            :class:`StringWithFormatting` object as part of a wider
            application, it is suggested that you always pass all the arguments
            explicitly.

def populate(self, terminal=None, styles=None, default_esc_seq=''):
        '''Get the concrete (including terminal escape sequences)
        representation of this string.

        :parameter Terminal terminal: The terminal object to use for turning
            formatting attributes such as :attr:`Root.format.blue` into
            concrete escape sequences.
        :parameter styles: An object from which to look up style definitions,
            which ultimately resolve to escape sequences, but may resolve to
            other intermediaries, including other styles.
        :type styles: StylePlaceholderFactory or dict
        :parameter str default_esc_seq: FIXME
        :returns str: Returns a concrete string, containing all the escape
            sequences required to render the string to the terminal with the
            desired formatting.

        .. note::
            All parameters are optional, and will be populated with sensible
            defaults if ommitted. This is to assist testing and experimentation
            with lower-level parts of Junction. If you want to use a
            :class:`StringWithFormatting` object as part of a wider
            application, it is suggested that you always pass all the arguments
            explicitly.
        '''
        terminal = terminal or get_terminal()
        styles = styles or {}
        return ''.join(
            s.populate(terminal, styles, default_esc_seq) for s in
            self._content)