* derived from)
*)
-exception Undefined
(* Some library functions used below. *)
+
+exception Undefined
+
module Util = struct
let fold_right = List.fold_right
let map = List.map
let undef = Obj.magic (fun () -> raise Undefined)
end
-
-
(*
* This module contains factories that extend a base set of
* monadic definitions with a larger family of standard derived values.
*)
module Monad = struct
+
(*
* Signature extenders:
* Make :: BASE -> S
let distribute f t = mapT (fun a -> elevate (f a)) t zero plus
let expose u = u
end
+
end;;
* All About Monads has supposedly also been integrated into the Haskell wikibook
* (A not-so-)[Gentle Introduction to Haskell](http://web.archive.org/web/http://www.haskell.org/tutorial/) (archived)
* [Learn You a Haskell for Great Good](http://learnyouahaskell.com/)
-
+* [Another page comparing Haskell and OCaml](http://blog.ezyang.com/2010/10/ocaml-for-haskellers/)
##Type expressions##