correct total and pure primitives