/*  lists.h  */

/*  Singly linked lists of int.
        emptylist()  returns the empty list
        empty(x)     returns true iff x is the empty list
        cons(x, y)   returns a list whose first element is x
                     and whose remaining elements are given
                     by the list y
        first        returns the first element of a nonempty list
        rest         returns the remaining elements of a nonempty list
        InitLists()
        DeleteLists()
*/

/***************************************************************
 *
 *      Private.
 *      No client should depend on this.
 *
 **************************************************************/

typedef double list_of_int;

/***************************************************************
 *
 *      Public.
 *
 **************************************************************/

list_of_int emptylist();
int empty (list_of_int);
list_of_int cons (int, list_of_int);
int first (list_of_int);
list_of_int rest (list_of_int);

void InitLists();
void DeleteLists();