Browse thread
Question on writing efficient Ocaml.
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2007-01-06 (01:01) |
From: | Philippe Wang <lists@p...> |
Subject: | Re: [Caml-list] Question on writing efficient Ocaml. |
Le 6 janv. 07 à 01:52, Nathaniel Gray a écrit : > As Xavier points out, one can use modules to hide basic types, but > this is pretty clumsy in practice. There's rumored to be a solution > using phantom types, but my attempts don't work: > > # type 'a boink = int;; > type 'a boink = int > # let f = (20 : string boink);; > val f : string boink = 20 > # let g = (30 : int boink);; > val g : int boink = 30 > # f;; > - : string boink = 20 > # g;; > - : int boink = 30 > # f + g;; > - : int = 50 Hmmm... the expression > f + g;; becomes an int because ( + ) : int -> int -> int If you write : ((+) : int -> int boink -> string boink) f g instead, it may do what you meant to do... Cheers, Philippe Wang mail(at)philippewang.info