Avoid type in distributive property helper
Add idempotent property to operations
Add a very crippled set placeholder class
Add a semiring class
No tests here either