semirings
