2017-07-23 5 views
1

Puis-je spécialiser un type dans une signature en utilisant des types avant ce type et dans la signature? Voici un exemple:Spécialisation de signature dépendante

signature A = sig 
    type t 
    type s 
end 

Puis-je spécialiser A par ce qui suit?

signature B = A where type s = t list 

deux SML/NJ et Mlton se plaignent que t est non liée.

Répondre

2

Non, cela ne peut en effet pas être fait directement. Les raisons sont plutôt techniques, il n'est pas facile d'attribuer une sémantique bien conduite à une telle opération dans le cas général.

Le plus proche que vous pouvez obtenir est en introduisant un autre type auxiliaire:

signature B = 
sig 
    type t' 
    include A with type t = t' with type s = t' list 
end