Module

Data.Ring.Module

Package
purescript-ring-modules
Repository
f-o-a-m/purescript-ring-modules

#LeftModule Source

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

#(^+) Source

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

#(^-) Source

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

#(^*) Source

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

#mnegateL Source

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

#RightModule Source

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

#(+^) Source

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

#(-^) Source

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

#(*^) Source

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

#mnegateR Source

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