added Type
added Function.type()
added Expression.type()