Currently, we assume that the predicate/mapper/reducer functions will only return one type of value. There are cases where the functions may generate errors inside.
In order to handle this, let each function have an optional additional return type which can only be of type error interface. This error can be returned by godash to the caller.
However, there is a need to differentiate godash errors from other errors. Hence, we need a custom error for all the validations that we do through reflection.