Feature/algebra

Bugfixes and Tests for CSC ops.

Still going through pull request initially, but I'll merge it. Just so that there's a record and notification until I get more comfortable.
anonymous types (which get inferred as structural types) have bad performance properties because they use reflection for everything. Can you extract this to a class?