This module provides an enum for terms. A term can either be a Variable or a Function. This also implements the serializability of terms.