ventajas reasonml online desventajas caracteristicas ocaml

reasonml - Módulos de primera clase en OCaml 3.12: ¿Qué tipo de cosas harán más fácil(o posible)?



ocaml online (2)

He oído que los "módulos de primera clase" están llegando en OCaml 3.12. ¿Qué ventajas ofrecerán? ¿Qué niños de las cosas serán más fáciles? ¿Qué problema están tratando de resolver? Un simple ejemplo sería suficiente.


Es solo una de las aplicaciones posibles, pero los módulos de primera clase facilitan la codificación de tipos existenciales, básicamente con un módulo que incluye un tipo existencial y un valor que utiliza este tipo). Por ejemplo, vea el trabajo de Alain Frisch sobre tipos dinámicos (código tomado de trabajo de Alain Frisch sobre los tipos de dyn: http://caml.inria.fr/cgi-bin/viewvc.cgi/ocaml/branches/dyntypes/stdlib/dyntypes.ml?view=markup )

module type DYN = sig type t val x: t val t: t ttype end type dyn = (module DYN) let dyn (type s) t x = let module M = struct type t = s let x = x let t = t end in (module M : DYN)

La idea aquí es que "ttype" es una representación concreta de ese tipo, un tipo de datos algebraico con constructores de Float, etc. y tiene aquí un valor, cuyo tipo está oculto, pero que lleva una representación concreta de ese tipo, que puede utilizar, por ejemplo, para obtener una serialización / deserialización más segura.