Con i file header, ossia con le definizioni dei tipi di dato astratti, possiamo scrivere un'applicazione main.c
Possiamo creare un set e aggiungere due nuovi oggetti. Se tutto va bene, troveremo gli oggetti inseriti nel set e non troveremo un altro nuovo oggetto. Il programma stamperà quindi ok.
La chiamata alla funzione differ() ci permette di discutere un aspetto semantico: un set matematico può contenere una sola copia dell'oggetto a; il tentativo di aggiungere un copia di un elemento già presente fa sì che venga restituito l'oggetto originale e differ() dovrebbe pertanto corrispondere a falso. Analogamente, una volta rimosso l'oggetto, questo non dovrebbe più essere presente nel set.
Rimuovere un elemento che non è incluso in un set restituirà un puntatore null che verrà passato alla funzione delete(). Per ora, ci atterremo alla semantica di free() e considereremo questo come accettabile.