%{ #include "hspincl.h" %} %{{ module U_match where #include "HsVersions.h" import UgenUtil import U_list import U_maybe import U_grhsb %}} /* For case we have pmatch [pat] sig grhsb For lambda we have pmatch pats sig grhsb For a function binding we have pamtch [pat] sig grhsb In the function binding case, the 'pat' is actually an appliation of form (f p1 .. pn), or perhaps (p1 `op` p2) p3 ... pn */ type match; pmatch : < gmpats : list; /* of patterns */ gmsig : maybe; /* maybe sig */ gmrhsb : grhsb; /* guarded RHSs */ >; end;