úÎõ#      !"Safe;=uAdditive MagmaAdditive UnitalMultiplicative MagmaMultiplicative UnitalSafeä*star(x) = 1 + x * star(x) star x = one  (x  (star x))#      !"#$%&#star-0.0.1.0-Kc95fjOBPQQBycc23l8Xup Data.Semiring Data.StarSemiringpluszerotimesone$fSemiringWord64$fSemiringWord32$fSemiringWord16$fSemiringWord8$fSemiringWord$fSemiringFloat$fSemiringDouble$fSemiringInt64$fSemiringInt32$fSemiringInt16$fSemiringInt8 $fSemiringInt$fSemiringBool$fSemiring(,,,,,,,,,)$fSemiring(,,,,,,,,)$fSemiring(,,,,,,,)$fSemiring(,,,,,,)$fSemiring(,,,,,)$fSemiring(,,,,)$fSemiring(,,,)$fSemiring(,,) $fSemiring(,) $fSemiring[] $fSemiring()$fSemiring(->)Starstar $fStarFloat $fStarDouble $fStarBool