add clamp function and all binary op will return typenode