added OCaml example
authorhaftmann
Sat, 10 Feb 2007 17:06:40 +0100
changeset 22308 7901493455ca
parent 22307 bb31094b4879
child 22309 87ec1ca65312
added OCaml example
doc-src/IsarAdvanced/Codegen/Thy/examples/class.ocaml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/IsarAdvanced/Codegen/Thy/examples/class.ocaml	Sat Feb 10 17:06:40 2007 +0100
@@ -0,0 +1,29 @@
+module ROOT = 
+struct
+
+module Nat = 
+struct
+
+type nat = Zero_nat | Suc of nat;;
+
+end;; (*struct Nat*)
+
+module Codegen = 
+struct
+
+type 'a null = {null : 'a};;
+let null _A = _A.null;;
+
+let rec head _A = function y :: xs -> y
+                  | [] -> null _A;;
+
+let rec null_option = None;;
+
+let null_optiona () = ({null = null_option} : ('b option) null);;
+
+let rec dummy
+  = head (null_optiona ()) [Some (Nat.Suc Nat.Zero_nat); None];;
+
+end;; (*struct Codegen*)
+
+end;; (*struct ROOT*)