Currently the AstState contains three fields for internal program state, gtk gui types and program options. The gtk types don't really belong here, since they are an implementation detail for the gtk-implementation.
Task: Remove the gtk types from this type and make them accessible via a Reader monad. This will most probably lead to a larger refactoring.