Haskell-linting Eval module, reducing duplication.

Reduces duplication in short circuit operations, adds type signatures
for top level functions.