// Adiciona um valor antes de uma posição void lAdicionarAntes(Lista* lista, lTipo valor, int pos)
// Adiciona um valor depois de uma posição void lAdicionarDepois(Lista* lista, lTipo valor, int pos)
// Adiciona um nó antes de uma posição void lAdicionarNoAntes(Lista* lista, NoLista* no, int pos)
// Adiciona um nó depois de uma posição void lAdicionarNoDepois(Lista* lista, NoLista* no, int pos)
// Adicionar um valor no fim void lAdicionarNoFim(Lista* lista, lTipo valor)
// Adicionar um nó no fim void lAdicionarNoNoFim(Lista* lista, NoLista* no)
// Adiciona um nó no início da lista void lAdicionarNoPrimeiro(Lista* lista, NoLista* no)
// Adiciona um valor no início da lista void lAdicionarPrimeiro(Lista* lista, lTipo valor)
// Returns a new array comprised of this array joined with other array(s) and/or value(s) Lista* lConcat(int num, ...)
// Cria uma lista com os valores de um vetor Lista* lCriarComValores(lTipo* valores, int num)
// Cria uma cópia raza de uma outra lista Lista* lCriarCopia(Lista* lista)
// Cria um nó vazio NoLista* lCriarNo(void)
// Cria uma lista vazia Lista* lCriarVazia(void)
// Tests whether all elements in the array pass the test implemented by the provided function int lEvery(Lista* lista, int (*funcao)(lTipo valor, int pos, Lista* lista))
// Elimina uma lista e todos seus nós da memória void lExcluir(Lista* lista)
// Creates a new array with all elements that pass the test implemented by the provided function Lista* lFilter(Lista* lista, int (*funcao)(lTipo valor, int pos, Lista* lista))
// Executes a provided function once per array element void lForEach(Lista* lista, void (*funcao)(lTipo valor, int pos, Lista* lista))
// Retorna o valor contido num nó lTipo lGet(Lista* lista, int pos)
// Retorna o último nó (ou NULL caso a lista esteja vazia) NoLista* lGetFim(Lista* lista)
// Retorna o nó na posição pedida // pos indica a posição do nó (0 para o primeiro) // pos pode ser negativo (-1 para o último) NoLista* lGetNo(Lista* lista, int pos)
// Retorna um vetor com todos os nós NoLista** lGetNos(Lista* lista)
// Retorna a primeira posição com o valor dado (-1 se não for encontrado) int lGetPos(Lista* lista, lTipo valor)
// Retorna a posição de um dado nó (-1 se não for encontrado) int lGetPosNo(Lista* lista, NoLista* no)
// Retorna um vetor com todos os valores lTipo* lGetValores(Lista* lista)
// Returns the first index at which a given element can be found in the array, or -1 if it is not present int lIndexOf(Lista* lista, lTipo valor, int inicio)
// Joins all elements of an array into a string char* lJoin(Lista* lista, char* (*funcao)(lTipo valor), char* separador)
// Returns the last index at which a given element can be found in the array, or -1 if it is not present. The array is searched backwards, starting at fromIndex int lLastIndexOf(Lista* lista, lTipo valor, int inicio)
// Creates a new array with the results of calling a provided function on every element in this array Lista* lMap(Lista* lista, lTipo (*funcao)(lTipo valor, int pos, Lista* lista))
// Removes the last element from an array and returns that element lTipo lPop(Lista* lista)
// Imprime os valores de uma lista, seguindo o formato dado // formato é uma string enviada para printf void lPrintf(Lista* lista, char* formato, char* depois)
// Mutates an array by appending the given elements and returning the new length of the array int lPush(Lista* lista, int num, ...)
// Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value lTipo lReduce(Lista* lista, lTipo (*funcao)(lTipo valorA, lTipo valorB, int pos, Lista* lista))
// Apply a function simultaneously against two values of the array (from right-to-left) as to reduce it to a single value lTipo lReduceRight(Lista* lista, lTipo (*funcao)(lTipo valorA, lTipo valorB, int pos, Lista* lista))
// Remove um nó da lista, retornando seu valor // O nó é liberado com free lTipo lRemover(Lista* lista, int pos)
// Remove um nó da lista, retornando-o NoLista* lRemoverNo(Lista* lista, int pos)
// Reverses an array in place. The first array element becomes the last and the last becomes the first void lReverse(Lista* lista)
// Removes the first element from an array and returns that element. This method changes the length of the array lTipo lShift(Lista* lista)
// Returns a one-level deep copy of a portion of an array Lista* lSlice(Lista* lista, int inicio, int fim)
// Tests whether some element in the array passes the test implemented by the provided function. int lSome(Lista* lista, int (*funcao)(lTipo valor, int pos, Lista* lista))
// Sorts the elements of an array in place and returns the array void lSort(Lista* lista, int (*funcao)(lTipo valorA, lTipo valorB))
// Changes the content of an array, adding new elements while removing old elements Lista* lSplice(Lista* lista, int inicio, int excluir, int num, ...)
// Retorna o número de nós na lista int lTamanho(Lista* lista)
// Adds one or more elements to the beginning of an array and returns the new length of the array int lUnshift(Lista* lista, int num, ...)
// Retorna se a lista está vazia int lVazia(Lista* lista)