// @(#)$Id: remove1st.C,v 1.2 1997/06/03 22:18:06 leavens Exp $

#include "remove1st.h"

template <class T>
List<T>* remove1st(List<T>* l, T e) throw() {
  if (l->is_null()) {
    return l;
  } else if (e == l->head()) {
    return (l->tail());
  } else {
    return new NonEmptyList<T>(l->head(), remove1st(l->tail(), e));
  }
}

