それは返り値うんぬんは関係ありません。 関数の宣言で引数を書くと、その時点でその変数は”定義”されたことになります。 そのうえで、さらにVARで再定義してしまうと当然ながらDuplicate variableになってしまいます。 DEF FUNC A VAR A END これだけでDuplicateです。(Aを2回定義してしまっているため)