module Noether.Algebra.Linear.Strategies where
import Noether.Lemmata.Prelude
import Noether.Lemmata.TypeFu
import Noether.Algebra.Actions
import Noether.Algebra.Multiple
import Noether.Algebra.Single
import Noether.Algebra.Single.Synonyms
import Noether.Algebra.Tags
import Noether.Algebra.Linear.Module
type DeriveLeftModule_Ring_AbelianGroup op p m r a v =
LeftModule_Ring_AbelianGroup_Linear_Compatible
(RingS p m r)
(AbelianGroupS a v)
(ActorLinearS L m p r a v)
(ActeeLinearS L m r a v)
(CompatibleS L op m r v)
type DeriveLeftModule_Self p m r = DeriveLeftModule_Ring_AbelianGroup m p m r p r
type DeriveRightModule_Ring_AbelianGroup op p m r a v =
RightModule_Ring_AbelianGroup_Linear_Compatible
(RingS p m r)
(AbelianGroupS a v)
(ActorLinearS R m p r a v)
(ActeeLinearS R m r a v)
(CompatibleS R op m r v)
type DeriveRightModule_Self p m r = DeriveRightModule_Ring_AbelianGroup m p m r p r
type instance LeftModuleS Mul Add Mul Double Add Double =
DeriveLeftModule_Self Add Mul Double
type instance RightModuleS Mul Add Mul Double Add Double =
DeriveRightModule_Self Add Mul Double