def METHOD_NAME(sym=None, with_private=False, with_color=True, color=None,
         color2=None, truncate=True, with_methods=True, _larch=None):
    """show group members:
    Options
    -------
    with_private:  show 'private' members ('__private__') if True
    with_color:    show alternating lines in color if True and color is available.
    truncate:      truncate representation of lengthy lists and tuples if True
    with_methods:  suppress display of methods if False
    """
    if sym is None:
        sym = _larch.symtable
    group = None
    symtable = _larch.symtable
    display  = symtable._sys.display
    with_color = with_color and display.use_color
    title = sym
    if symtable.isgroup(sym):
        group = sym
        title = repr(sym)[1:-1]
    elif isinstance(sym, types.ModuleType):
        group = sym
        title = sym.__name__
    if group is None:
        _larch.writer.write("%s\n" % repr(sym))
        return
    if title.startswith(symtable.top_group):
        title = title[6:]
    if group == symtable:
        title = 'Group _main'
    ## set colors for output
    colopts1 = display.colors['text']
    colopts2 = display.colors['text2']
    if with_color:
        if color is not None:
            colopts1['color'] = color
        if color2 is not None:
            colopts2['color'] = color2
    _copts = {1: colopts1, 0: colopts2}
    members = dir(group)
    dmembers = []
    nmethods = 0
    for item in members:
        if (item.startswith('__') and item.endswith('__') and
            not with_private):
            continue
        obj = getattr(group, item)
        if callable(obj):
            nmethods +=1
            if not with_methods:
                continue
        dmembers.append((item, obj))
    write = _larch.writer.write
    color_output = hasattr(_larch.writer, 'set_textstyle')
    title_fmt = '== %s: %i methods, %i attributes ==\n'
    write(title_fmt % (title, nmethods, len(dmembers)-nmethods))
    count = 0
    for item, obj in dmembers:
        if (isinstance(obj, numpy.ndarray) and
            (len(obj) > 10 or len(obj.shape)>1)):
            dval = "array<shape=%s, type=%s>" % (repr(obj.shape),
                                                 repr(obj.dtype))
        elif isinstance(obj, (list, tuple)) and truncate and len(obj) > 5:
            dval = "[%s, %s, ... %s, %s]" % (repr(obj[0]), repr(obj[1]),
                                             repr(obj[-2]), repr(obj[-1]))
        else:
            try:
                dval = repr(obj)
            except:
                dval = obj
        if color_output:
            _larch.writer.set_textstyle({True:'text', False:'text2'}[(count%2)==1])
        count += 1
        write('  %s: %s\n' % (item, dval))
    if color_output:
        _larch.writer.set_textstyle('text')
    _larch.writer.flush()