Using constructs with parentheses can be misleading as it will produce a syntax that looks like a normal function call. However those constructs
have lower precedence in the evaluation order than some others operators, this can lead to a behavior completely different from what the function
syntax would hint. Also, some of the constructs have optional parameters, while modifying the code we may remove a parameter while keeping the
parentheses, resulting in invalid code.