Refactor - Rename elect to unsafeElect and safeElect to elect.
Refactor - As Massyl suggested, use fmap instead of liftM
Refactor - Use the <$> notation instead of fmap