-- | Provides the world interface through foreign exports. module Montis.Core.World.Interface where import Data.ByteString (ByteString) import Data.Data (Typeable) import Data.Singletons.Decide (Void) import Foreign (Ptr, StablePtr, Word32) import Foreign.C (CChar) import Montis.Core.State (SelfPtr) -- type OpqStT l w = StablePtr (Context l w, State l w) class OpaqueState s where hotStart :: SelfPtr -> ByteString -> IO s coldStart :: SelfPtr -> IO s marshalState :: s -> ByteString teardown :: s -> IO ()