+pga_loopr :: forall g x y z . PGArrow g (GArrowTensor g x z) (GArrowTensor g y z) -> PGArrow g x y
+pga_loopr f = PGArrowD { unG = ga_loopr $ unG f }
+pga_loopl :: forall g x y z . PGArrow g (GArrowTensor g z x) (GArrowTensor g z y) -> PGArrow g x y
+pga_loopl f = PGArrowD { unG = ga_loopl $ unG f }