Arguably, we ought to have a more compact way for defining these special functions with typed operands