put the type inferencing inside state and IO monad, state for remembering the environment and IO for printing errors. we want a better mechanism for errors but I'm not sure what monad to use. errors are currently printed as they occur (which leads to duplicates)
Merge branch 'master' of https://github.com/joaopizani/INFOAPA-P1-AbstractInterpretation