Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001614OCamlOCaml generalpublic2003-03-28 15:242003-03-31 19:21
Reporteradministrator 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0001614: typage explicite avec types de foncteurs
Description
salut a vous,

Voici un probleme a propos des types de foncteurs: on ne
peut pas y associer a posteriori une expression "with type".

Je ne pense pas que ce soit reellement un bug (en tous cas
la doc est coherente dans son traitement differenci'e des
signatures et des types de foncteurs). Mais le
fonctionnement actuel rend peut-etre inutilement asymetrique
l'utilisation du typage explicite pour les foncteurs et les
modules simples.


Exemple:

module type S = sig end
module type SF = functor (M: S) -> sig type t val v : t end;;
module F : SF =
   functor (M: S) -> struct type t = int let v = 3 let w = 4 end;;
module M = F (struct end);;

Ce qui donne a l'utilisation:

# M.v;;
- : M.t = <abstr>
# M.w;;
Unbound value M.w

On a donc ici un effet identique au typage explicite avec
signature simple: masquage du type abstrait t et masquage
des champs qui n'apparaissent pas dans la signature du
module resultat.

Mais le parallele s'arrete l`a puisqu'on ne peut pas ajouter
une expression "with type" pour e.g. rendre concret a
posteriori le type t:

module F : SF with type t = int =
    functor (M: S) -> struct type t = int let v = 3 end ;;

Avec un message d'erreur:
  module F : SF with type t = int =
              ^^
This module type is not a signature

pn


TagsNo tags attached.
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker