products and coproducts, lots of variants
gitignore