@@ -152,13 +152,15 @@ FFI_C = MkFFI C_Types String String
152IO : Type -> Type
152IO : Type -> Type
153IO = IO' FFI_C
153IO = IO' FFI_C
155+-- Cannot be relaxed as is used by type providers and they expect IO a
156+-- in the first argument.
155run__provider : IO a -> PrimIO a
157run__provider : IO a -> PrimIO a
156run__provider (MkIO f) = f (TheWorld prim__TheWorld)
158run__provider (MkIO f) = f (TheWorld prim__TheWorld)
158prim_fork : PrimIO () -> PrimIO Ptr
160prim_fork : PrimIO () -> PrimIO Ptr
159prim_fork x = prim_io_return prim__vm -- compiled specially
161prim_fork x = prim_io_return prim__vm -- compiled specially
161−fork : IO () -> IO Ptr
163+fork : IO' l () -> IO' l Ptr
162fork (MkIO f) = MkIO (\w => prim_io_bind
164fork (MkIO f) = MkIO (\w => prim_io_bind
163 (prim_fork (prim_io_bind (f w)
165 (prim_fork (prim_io_bind (f w)
164 (\ x => prim_io_return x)))
166 (\ x => prim_io_return x)))