These are also probably slow since collect is a fn not a macro?