If there are two different .drl files in the same package each of which contains a function with name x, and if we have calls to x in both files, expecting to call the local x, respectively:<br><br>(a) if the function signatures are identical, then this compiles without errors, but at runtime only one of these functions will be called.<br>
<br>(b) if the signatures differ, you get inexplicable error messages for correct calls, i.e.:<br>Rule Compilation error : [Rule name=&#39;Look4Beat&#39;]<br>    appl/vote/Rule_Look4Beat_0.java (7:380) : The method foo(String, String) in the type Foo is not applicable for the arguments (String)<br>
<br>As a test case for (a), use the file below and another one substituting &#39;1&#39; by &#39;2&#39;:<br><br>package x.y;<br>function void foo(String s ){ System.out.println( &quot;foo 1: &quot; + s ); } <br>rule &quot;Object 1&quot;<br>
   when<br>       Object()<br>   then<br>       foo( &quot;in file 1&quot; );<br>end<br><br>Presumably the class names for functions cannot be derived from the function name alone.<br>-W<br><br><br>