change to do not use ZFuncType.TypeParams directly
change to report type error
change object structure
implement VisitFuncCallNode for function object