add compound data type
add new constructors for atom and functor types