Tor in QPA for commutative quiver algebras Given a commutative quiver algebra $A=KQ/I$ in the GAP-package QPA and two (right) $A$-modules M and N.

Question 1: Is it possible to calculate $Tor_A^i(M,N)=D(Ext_A^i(M,D(N))$ with QPA?

The problem here is that M and N are both right modules while the second argument in Tor has to be a left module. But since $A$ is commutative we have that left and right modules can be identified, but I do not know how to do this with QPA.

Question 2: How to get a left $A$-module for example ($D(M)$) as a right $A$-module in QPA when $A$ is commutative?

 A: Let $M$ be a right $A$-module.  Then $N = M_A$ is a left $A$-module via defining
$$a\cdot m = ma$$
for all $a$ in $A$ and all $m$ in $M$. Furthermore $N$ is a right $A^{\operatorname{op}}$-module via defining
$$n \circ a^{\operatorname{op}} = a\cdot n,$$
which is by definition $na$, where $a$ is in $A$ and $a^{\operatorname{op}}$ is $a$ viewed as an element in $A^{\operatorname{op}}$.  Hence, if $M$ is a right $A$-module, then $M$ as a left $A$-module is given as a right $A^{\operatorname{op}}$-module where action of $A^{\operatorname{op}}$ is given by the same matrices as the original action.  This can be done as follows in QPA:
gap> Q := Quiver( 1, [[ 1,1,"a"],[1,1,"b"]] );;
gap> KQ := PathAlgebra( Rationals, Q );;
gap> AssignGeneratorVariables( KQ );;
#I  Assigned the global variables [ v1, a, b ]
gap> rels := [ a^2, a*b - b*a, b^2 ];;
gap> A := KQ/rels;;
gap> Aop := OppositeAlgebra( A );
<Rationals[<quiver with 1 vertices and 2 arrows>]/<two-sided ideal in <Rationals[<quiver with 1 vertices and 2 arrows>]>,
  (3 generators)>>
gap> S := SimpleModules( A )[ 1 ];;
gap> M := DTr( S );
<[ 5 ]>
gap> mats := MatricesOfPathAlgebraModule( M );
[ [ [ 0, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0 ] ], 
  [ [ 0, 0, 0, 0, 0 ], [ 0, 0, 0, -1, 0 ], [ 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0 ] ] ]
gap> N := RightModuleOverPathAlgebra( Aop, mats );
<[ 5 ]>
gap> ext := ExtOverAlgebra(M,DualOfModule(N));
[ <<[ 7 ]> ---> <[ 12 ]>>, [ <<[ 7 ]> ---> <[ 5 ]>>, <<[ 7 ]> ---> <[ 5 ]>>, <<[ 7 ]> ---> <[ 5 ]>>, 
      <<[ 7 ]> ---> <[ 5 ]>>, <<[ 7 ]> ---> <[ 5 ]>>, <<[ 7 ]> ---> <[ 5 ]>> ], function( map ) ... end ]  

It is always confusing with identifications which seemingly are the identity, but I hope that this is correct.
