While developing in the Wolfram language (Mathematica) has many advantages, I found debugging hard and confusing at times. The Wolfram language is much more flexible compared to other languages because it treats everything as Symbols and therefore a function can take everything as an argument. Really everything, a sound, an image, a graph, a Number, a String, a Webpage …. Therefore it is important to restrict the function to specific arguments, like Integers with patterns.