Clean up
Clean up expression optimization

Optimize expressions when they are made more complex instead of later
Make Tarpit a Monoid instance

Nicer than the join function