on master help sign in
Add minimal documentation
6fce921Markus Klink
libs/base/Data/IORef.idr+5
@@ -1,5 +1,6 @@
1module Data.IORef
1module Data.IORef
2
2
3+||| A mutable variable in the IO monad.
3export
4export
4data IORef a = MkIORef a
5data IORef a = MkIORef a
5
6
@@ -37,18 +38,22 @@ implementation HasReference FFI_JS where
37 writeIORef' (MkIORef ref) val =
38 writeIORef' (MkIORef ref) val =
38 foreign FFI_JS "%0.val = %1" (Ptr -> Ptr -> JS_IO ()) (believe_me ref) (believe_me val)
39 foreign FFI_JS "%0.val = %1" (Ptr -> Ptr -> JS_IO ()) (believe_me ref) (believe_me val)
39
40
41+||| Build a new IORef
40export
42export
41newIORef : a -> IO (IORef a)
43newIORef : a -> IO (IORef a)
42newIORef = newIORef'
44newIORef = newIORef'
43
45
46+||| read the value of an IORef
44export
47export
45readIORef : IORef a -> IO a
48readIORef : IORef a -> IO a
46readIORef = readIORef'
49readIORef = readIORef'
47
50
51+||| write the value of an IORef
48export
52export
49writeIORef : IORef a -> a -> IO ()
53writeIORef : IORef a -> a -> IO ()
50writeIORef = writeIORef'
54writeIORef = writeIORef'
51
55
56+||| mutate the contents of an IORef
52export
57export
53modifyIORef : IORef a -> (a -> a) -> IO ()
58modifyIORef : IORef a -> (a -> a) -> IO ()
54modifyIORef = modifyIORef'
59modifyIORef = modifyIORef'