Quaternion analysis