Use DeriveTraversable instead of GeneralizedNewtypeDeriving
Types: Manually write underivable instances
Ignore empty commands
Add resetPreAmp command