1. Provide a Storable instance for AI.MEP.Types.Gene and make the Chromosome a Data.Vector.Storable. 2. Improve code generation. Features: a) Removal of dead (unused) expressions b) Subexpression elimination, e.g. x0 / x0 -> 1 3. Improve the demo: provide a CLI interface to work with external data 4. Performance tuning and benchmarking using Criterion package. Hint: use of matrices featuring O(1) memory access instead of lists of vectors ([Chromosome a], [Phenotype a]), might improve the speed of such operators as binaryTournament.