aboutsummaryrefslogtreecommitdiff
path: root/montis/src/Montis/Core/World
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2026-01-14 00:09:26 -0700
committerJosh Rahm <joshuarahm@gmail.com>2026-01-14 00:11:37 -0700
commitf216280bc0fdc4a6f00187dba1d1ddc22b54097d (patch)
tree64637e9df49011b3ec81738b4347ab7a97e88980 /montis/src/Montis/Core/World
parentcc6302ee2073d1ea40608abb77ca6019feca4a2a (diff)
downloadmontis-main.tar.gz
montis-main.tar.bz2
montis-main.zip
[reog] rename soul -> world.HEADmain
It makes a bit more sense.
Diffstat (limited to 'montis/src/Montis/Core/World')
-rw-r--r--montis/src/Montis/Core/World/Interface.hs20
1 files changed, 20 insertions, 0 deletions
diff --git a/montis/src/Montis/Core/World/Interface.hs b/montis/src/Montis/Core/World/Interface.hs
new file mode 100644
index 0000000..39d4e4c
--- /dev/null
+++ b/montis/src/Montis/Core/World/Interface.hs
@@ -0,0 +1,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 ()