Module

Data.Ring.Module

#LeftModule

class (Ring r) <= LeftModule x r | x -> r where

Left modules over rings.

Instances must satisfy the following laws:

  • Left distributivity: r ^* (x ^+ y) = r ^* x ^+ r ^* y
  • Left distributivity: (r + s) ^* x = r ^* x ^+ s ^* x
  • Left compatibility: (r * s) ^* x = r ^* (s ^* x)
  • Left identity: one ^* x = x

Members

Instances

#(^+)

Operator alias for Data.Ring.Module.maddL (left-associative / precedence 6)

#(^-)

Operator alias for Data.Ring.Module.msubL (left-associative / precedence 6)

#(^*)

Operator alias for Data.Ring.Module.mmulL (left-associative / precedence 7)

#mnegateL

mnegateL :: forall x r. LeftModule x r => x -> x

#RightModule

class (Ring r) <= RightModule x r | x -> r where

Right modules over rings.

Instances must satisfy the following laws:

  • Right distributivity: (x +^ y) *^ r = x *^ r +^ y *^ r
  • Right distributivity: x *^ (r + s) = x *^ r +^ x *^ s
  • Right compatibility: x *^ (r * s) = (x *^ r) *^ s
  • Right identity: x *^ one = x

Members

Instances

#(+^)

Operator alias for Data.Ring.Module.maddR (left-associative / precedence 6)

#(-^)

Operator alias for Data.Ring.Module.msubR (left-associative / precedence 6)

#(*^)

Operator alias for Data.Ring.Module.mmulR (left-associative / precedence 7)

#mnegateR

mnegateR :: forall x r. RightModule x r => x -> x

Modules