added FuncTypeExpr, allowing more fancy functional programming