on master help sign in
Add minimal documentation
commit6fce9218b1977896a0677681d2937b6b4c5498fc authorMarkus Klink <markus.klink@inoio.de> dateThu 15 Mar 2018, 13:34 (9 years ago) parent36eff70
1 file changed+5
libs/base/Data/IORef.idr+5
libs/base/Data/IORef.idr+5
@@ -1,5 +1,6 @@
11module Data.IORef
22
3+||| A mutable variable in the IO monad.
34export
45data IORef a = MkIORef a
56
@@ -37,18 +38,22 @@ implementation HasReference FFI_JS where
3738 writeIORef' (MkIORef ref) val =
3839 foreign FFI_JS "%0.val = %1" (Ptr -> Ptr -> JS_IO ()) (believe_me ref) (believe_me val)
3940
41+||| Build a new IORef
4042export
4143newIORef : a -> IO (IORef a)
4244newIORef = newIORef'
4345
46+||| read the value of an IORef
4447export
4548readIORef : IORef a -> IO a
4649readIORef = readIORef'
4750
51+||| write the value of an IORef
4852export
4953writeIORef : IORef a -> a -> IO ()
5054writeIORef = writeIORef'
5155
56+||| mutate the contents of an IORef
5257export
5358modifyIORef : IORef a -> (a -> a) -> IO ()
5459modifyIORef = modifyIORef'