refactor code
rename Pure.hs to IORef.hs
move backends to a subdir
fix the type signatures
remove extraneous type signature
Merge pull request #13 from Changaco/factorize

Refactor code using CPP