$use StdIO; $tfunc Fab e = e; Fab { 'A' e2 = 'B' ; s1 e2 = s1 ; (e1) e2 = () ; /*empty*/ = /*empty*/; }; Main = 'ABABA'('CA'('A'('AEA')'ADA'('EA'('A'))'AAA')'AC')'BA' :: e1, , ()>;