def definir_estrutura(nome, campos, mutavel=False):
    """
    Define uma estrutura de dados compostos (uma classe).
    Por padrão, a estrutura é imutável, mas pode-se criar mutáveis setando 'mutavel=True'.
    :param nome: String -- nome do tipo
    :param campos: List<String> -- lista com os nomes dos campos
    :param mutavel: Boolean [=False]
    :return: retorna um tipo de dado definido pelo programador.
    """
    if isinstance(campos, tuple):
        campos = list(campos)
    if not mutavel:
        from collections import namedtuple
        return namedtuple(nome, campos)
    else:
        from namedlist import namedlist
        return namedlist(nome, campos)
