$use StdIO; $tfunc Fab s e (e) = e; Fab sA eB (earg), earg : { 'A' e2 = eB ; s1 e2 = s1 ; (e1) e2 = () ; /*empty*/ = /*empty*/; }; $tfunc Fab2 e = e; Fab2 { 'A' e2 = 'B' ; s1 e2 = s1 ; (e1) e2 = () ; /*empty*/ = /*empty*/; }; Main = 'A' :: e1, :: e1, :: e1, :: e1, // :: e1, , , :: e1, ;