#include MODULE(creverse) FUNCTION(creverse,creverse,argc,argv) { if (argc == 1) { expr x = argv[0], y = mknil, hd, tl; while (y && iscons(x, &hd, &tl)) { expr z = mkcons(hd, y); y = z; x = tl; } if (!y) return __ERROR; else if (isnil(x)) return y; else { dispose(y); return __FAIL; } } else return __FAIL; }