At the risk of bikeshedding things to death:

Another option on that front is to just remove the concept of a "GettableStateVar" entirely and substitute 'IO', then 'get' is 'id' or even 'liftIO' and there is no dilemma about whether to use a GettableStateVar or a boring IO action -- and you aren't playing catchup writing instance after instance.

type GettableStateVar = IO 

would just work.

​-Edward