package Ġit . uni bo . tup ro log . core . impl Ċ Ċ import Ġit . uni bo . tup ro log . core . Rule Ċ import Ġit . uni bo . tup ro log . core . Scope Ċ import Ġit . uni bo . tup ro log . core . Struct Ċ import Ġit . uni bo . tup ro log . core . Term Ċ import Ġit . uni bo . tup ro log . core . Term Visitor Ċ Ċ internal Ġopen Ġclass ĠRule Impl ( ĊĠĠĠ Ġoverride Ġval Ġhead : ĠStruct , ĊĠĠĠ Ġoverride Ġval Ġbody : ĠTerm , ĊĠĠĠ Ġtags : ĠMap < String , ĠAny > Ġ= Ġempty Map () Ċ ) Ġ: ĠClause Impl ( head , Ġbody , Ġtags ), ĠRule Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcopy With Tags ( tags : ĠMap < String , ĠAny >): ĠRule Ġ= ĠRule Impl ( head , Ġbody , Ġtags ) ĊĊĠĠĠ Ġoverride Ġfun Ġfresh Copy (): ĠRule Ġ= Ġsuper . fresh Copy (). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġfresh Copy ( scope : ĠScope ): ĠRule Ġ= Ġsuper . fresh Copy ( scope ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġval Ġhead Args : ĠIterable < Term > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġhead . args ĊĊĠĠĠ Ġoverride Ġval Ġhead Ar ity : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġhead . arity ĊĊĠĠĠ Ġoverride Ġfun Ġget Head Arg ( index : ĠInt ): ĠTerm Ġ= Ġhead [ index ] ĊĊĠĠĠ Ġoverride Ġfun Ġset Body ( body : ĠTerm ): ĠRule Ġ= Ġsuper . set Body ( body ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġset Head Functor ( functor : ĠString ): ĠRule Ġ= Ġsuper . set Head Functor ( functor ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġset Head Args ( var arg Ġarguments : ĠTerm ): ĠRule Ġ= Ġsuper . set Head Args (* arguments ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġset Head Args ( arguments : ĠIterable < Term >): ĠRule Ġ= Ġsuper . set Head Args ( arguments ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġset Head Args ( arguments : ĠSequence < Term >): ĠRule Ġ= Ġsuper . set Head Args ( arguments ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġinsert Head Arg ( index : ĠInt , Ġargument : ĠTerm ): ĠRule Ġ= Ġsuper . insert Head Arg ( index , Ġargument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġadd First Head Arg ( argument : ĠTerm ): ĠRule Ġ= Ġsuper . add First Head Arg ( argument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġadd Last Head Arg ( argument : ĠTerm ): ĠRule Ġ= Ġsuper . add Last Head Arg ( argument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġappend Head Arg ( argument : ĠTerm ): ĠRule Ġ= Ġsuper . append Head Arg ( argument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġset Body Items ( argument : ĠTerm , Ġvar arg Ġarguments : ĠTerm ): ĠRule Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . set Body Items ( argument , Ġ* arguments ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġset Body Items ( arguments : ĠIterable < Term >): ĠRule Ġ= Ġsuper . set Body Items ( arguments ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġset Body Items ( arguments : ĠSequence < Term >): ĠRule Ġ= Ġsuper . set Body Items ( arguments ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġinsert Body Item ( index : ĠInt , Ġargument : ĠTerm ): ĠRule Ġ= Ġsuper . insert Body Item ( index , Ġargument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġadd First Body Item ( argument : ĠTerm ): ĠRule Ġ= Ġsuper . add First Body Item ( argument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġadd Last Body Item ( argument : ĠTerm ): ĠRule Ġ= Ġsuper . add Last Body Item ( argument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġappend Body Item ( argument : ĠTerm ): ĠRule Ġ= Ġsuper . append Body Item ( argument ). cast To Rule () ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġaccept ( visitor : ĠTerm Visitor < T >): ĠT Ġ= Ġvisitor . visit Rule ( this ) Ċ } Ċ