134 |
134 |
135 (* translate rec equations into function arguments suitable for rec comb *) |
135 (* translate rec equations into function arguments suitable for rec comb *) |
136 |
136 |
137 fun trans eqns ((cname, cargs), (fnames', fnss', fns)) = |
137 fun trans eqns ((cname, cargs), (fnames', fnss', fns)) = |
138 (case assoc (eqns, cname) of |
138 (case assoc (eqns, cname) of |
139 None => (warning ("no equation for constructor " ^ quote cname ^ |
139 None => (warning ("No equation for constructor " ^ quote cname ^ |
140 "\nin definition of function " ^ quote fname); |
140 "\nin definition of function " ^ quote fname); |
141 (fnames', fnss', (Const ("arbitrary", dummyT))::fns)) |
141 (fnames', fnss', (Const ("arbitrary", dummyT))::fns)) |
142 | Some (ls, cargs', rs, rhs, eq) => |
142 | Some (ls, cargs', rs, rhs, eq) => |
143 let |
143 let |
144 val recs = filter (is_rec_type o snd) (cargs' ~~ cargs); |
144 val recs = filter (is_rec_type o snd) (cargs' ~~ cargs); |