cleanup cabal configuration
migrate code to src/ and use advanced cabal config
add test suite
add instace of Eq for Expr