From: Jim Pryor Date: Sun, 12 Dec 2010 14:39:21 +0000 (-0500) Subject: tweak monad_library X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=commitdiff_plain;h=07c7d8e8cabf1779d420b18209a48c2ca10eee8d tweak monad_library Signed-off-by: Jim Pryor --- diff --git a/monad_library.mdwn b/monad_library.mdwn index 398f2e52..d7f899a6 100644 --- a/monad_library.mdwn +++ b/monad_library.mdwn @@ -80,17 +80,17 @@ Some comments on the design of this library. * The monads available are: - * Identity_monad - * Maybe_monad - * List_monad - * Reader_monad (has to be parameterized as above) - * State_monad (has to be parameterized as above) - * Ref_monad (a version of State_monad with a structured store, and custom operations for creating new cells in the store, and getting or changing the values of existing cells) - * Writer_monad (has to be parameterized on the type of the written data; use Writer1 as a simple predefined case) - * Error_monad, with `throw err` and `catch u handler_function` operations (this has to be parameterized on the type of `err`; use Failure as a simple predefined case, where `type err = string`) - * IO_monad (you don't need this in OCaml, but it works analagously to the IO monad in Haskell, so it's handy for working with Haskell-written algorithms in OCaml) - * Leaf_monad (leaf-labeled, binary trees) - * and of course, Continuation_monad, with `callcc`, `reset`, `shift` and `abort` operations. + * `Identity_monad` + * `Maybe_monad` + * `List_monad` + * `Reader_monad` (has to be parameterized as above) + * `State_monad` (has to be parameterized as above) + * `Ref_monad` (a version of `State_monad` with a structured store, and custom operations for creating new cells in the store, and getting or changing the values of existing cells) + * `Writer_monad` (has to be parameterized on the type of the written data; use `Writer1` as a simple predefined case) + * `Error_monad`, with `throw err` and `catch u handler_function` operations (this has to be parameterized on the type of `err`; use `Failure` as a simple predefined case, where `type err = string`) + * `IO_monad` (you don't need this in OCaml, but it works analagously to the `IO` monad in Haskell, so it's handy for working with Haskell-written algorithms in OCaml) + * `Leaf_monad` (leaf-labeled, binary trees) + * and of course, `Continuation_monad`, with `callcc`, `reset`, `shift` and `abort` operations. * All of these monads come with [[monad transformers]] too. To get a State monad wrapped around a Maybe monad, do this: