Plugins now pump state and it works!
We had to use an 'explicit' way of passing state back,
but it works quite nicely as seen by this test:
austin@continuum ~/c/h/infinity-0.4> ghci Infinity.hs
GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help
Loading package base ... linking ... done.
...
*Infinity> x <- initplugins (enabledplugins config)
...
*Infinity> (s,_) <- runplugin undefined x "get" Nothing
"Nil"
*Infinity> (s,x') <- runplugin undefined x "put" (Just ["hello world"])
*Infinity> s
"Done"
*Infinity> (s,_) <- runplugin undefined x' "get" Nothing
"hello world"
*Infinity> saveplugins x'
*Infinity> ^DLeaving GHCi.
austin@continuum ~/c/h/infinity-0.4> ls State/
StateTest.st
austin@continuum ~/c/h/infinity-0.4> ghci Infinity.hs
GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help
Loading package base ... linking ... done.
...
*Infinity> x <- initplugins (enabledplugins config)
...
*Infinity> (s,_) <- runplugin undefined x "get" Nothing
"hello world"
*Infinity> Leaving GHCi.
austin@continuum ~/c/h/infinity-0.4>
Very fun stuff, indeed. We can now go full force ahead
with the actual connection code!
(Note: we also removed the Core.hs-boot file as I noticed
it now has no purposes.)