blob: 39d4e4c17362bb0d62f998d0e115c92a0c25c987 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-- | 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 ()
|