# What is the list of all Heads that Collect threads over?

After spending hours of debugging my program, I found that Collect threads over Rule. While the documentation (under Details and Options) says that it threads over "lists ... equations, inequalities and logic functions", Rule does not count (in my mind) as one of those.

In order to avoid any further unexpected behavior, I need to know exactly which heads Collect threads over. Does anyone know?

• Does SystemOptions["AlgebraicThreadThroughHeads"] give what you need?
– kglr
Jul 26 '17 at 17:19
• @kglr Yes! It does. Please add that as an answer, and also include how you knew where to find that information? Jul 26 '17 at 20:47

## 1 Answer

SystemOptions["AlgebraicThreadThroughHeads"]


{"AlgebraicThreadThroughHeads" ->
{And, Equal, Greater, GreaterEqual, Implies, Inequality, Less, LessEqual, List, Nand, Nor, Not, Or, Rule, Unequal, Xor}}

• It was pure lock that I bumped into the option "AlgebraicThreadThroughHeads" while checking "SimplificationOptions" for this answer:)
– kglr
Jul 26 '17 at 21:03