\begin{tomcode3}[label=code:implicitExplicitNotations,caption=Illustration des notations explicite et implicite.] %gom() { module Contacts abstract syntax Personne = Personne(nom:String, prenom:String, age:int) } public boolean peutConduireExplicite(Personne p) { %match(p) { Personne(_,_,a) -> { return (`a>18); } } } public boolean peutConduireImplicite(Personne p) { %match(p) { Personne[age=a] -> { return (`a>18); } } } public boolean peutConduireImplicite2(Personne p) { %match(p) { Personne[age=a] && a>18 -> { return true; } } return false; } \end{tomcode3}