Separate Tax functionality from Bill.
Consolidate tests.
Use typeclasses in a different way.
Revert "Use typeclasses in a different way."

This reverts commit fd12d27633011a917f3c1e65e3f925838f1a13cf.
Over-engineer by adding more types.
Remove TaxFn, taxFn, BillFn, and billFn.
Put Taxable into Reader monad.
Revert "Put Taxable into Reader monad."

This reverts commit f9a3ca0237b536e2d1207a70d37f810cfe8efbc1.
Rename Taxable type to Prices; add prices to it.
Revert "Rename Taxable type to Prices; add prices to it."

This reverts commit b69f5a7a50166631918f861da649757375aeace6.
Remove Taxable type.
Revert "Remove Taxable type."

This reverts commit 2d66c6ab75af86ee559ac3c63b990e264c320c30.
Put Taxable into Reader monad.

This reverts commit 3694fcddc3ce5f5da03f02dc49b8e39c68211094.
Re-order `let` clause in `bill` function.
Rename `pricesSum` to `totalPrice`.
Use `do` notation in `bill` function.