#ifndef LIST_INT_H_INCLUDED
#define LIST_INT_H_INCLUDED

struct list_int;

struct list_int * list_int_new ();	  /* constructor */
void list_int_delete (struct list_int *); /* destructor */

typedef struct list_int * list_int_iterator;

list_int_iterator list_int_append (struct list_int * l, int v); /* add at the end */
list_int_iterator list_int_insert (list_int_iterator i, int v); /* add before i */
list_int_iterator list_int_erase (list_int_iterator i);		/* return next */
void list_int_clear (struct list_int * l);

list_int_iterator list_int_begin (struct list_int * l);
list_int_iterator list_int_end (struct list_int * l);

int list_int_get (list_int_iterator i);
void list_int_put (list_int_iterator i, int v);

int list_int_empty (list_int_iterator i);

list_int_iterator list_int_next (list_int_iterator i);
list_int_iterator list_int_prev (list_int_iterator i);

#endif
