Another attempt at expression. Type checking becomes a big problem with cons