readonly proc _listf (nm, elt, vis) is local list = nm & "List" local listf = nm & "ListF" build_generic_intf (list, "List", [elt], vis) build_generic_impl (list, "List", [elt]) build_generic_intf (listf, "ListF", [elt, list], vis) build_generic_impl (listf, "ListF", [elt, list]) end readonly proc Listf (nm, elt) is _listf (nm, elt, VISIBLE) end readonly proc listf (nm, elt) is _listf (nm, elt, HIDDEN) end