caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Big feature wish: IO module
@ 2003-11-12 16:35 Oleg Trott
  0 siblings, 0 replies; only message in thread
From: Oleg Trott @ 2003-11-12 16:35 UTC (permalink / raw)
  To: caml-list

I'm very puzzled why after over 10 years, Caml did not acquire something like 
this ("Modern" languages seem to usually have it: Haskell has "read" and 
"show", e.g.)

(*  =========== module IO ================== *)

module type AnyType = sig type t end

type style = Binary | Caml | S_expr | XML

exception Parse_error
exception Type_error

module type S = 
  sig
    type t
    val from_channel: ?style:style -> in_channel -> t
    val from_string   : ?style:style -> string -> t
    val from_buffer  : ?style:style -> string -> int -> t

    val to_channel: ?style:style -> ?detect_sharing:bool -> out_channel -> t 
-> unit
    val to_string: ?style:style -> ?detect_sharing:bool -> t -> string
    val to_buffer: ?style:style -> ?detect_sharing:bool -> t -> string -> 
int->  int
  end

module Make (Any : AnyType) : S with type t = Any.t

(* ======================================== *)    

No explanation is necessary, I hope. IO module should to be type-safe and 
subsume Marshal and IOXML.

This would, of course, require compiler support, since users can not do type 
introspection, even with Camlp4 (I remember reading some sort of 
pre-announcement about adding type introspection to Camlp4. How is that 
coming along?)

BTW, there is a problem with labeled arguments within module signatures, 
right?

-- 
Oleg Trott <oleg_trott@columbia.edu>

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-11-12 16:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-12 16:35 [Caml-list] Big feature wish: IO module Oleg Trott

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).