Rename simulateP and registerP to: simulateW and registerW
Export Index datatype from the Prelude
simplify iterate and generate