#include <implicit_conversion.h>
Every ICS starts with a null step (a_NullStep) followed by any number of conversion steps. Each step contains the target type of its conversion, the source type for that step is the target of the previous one (that's what the null step is for).
The first step may contain a Function_signature pointer in its /function/ member, when the expression to convert is an overloaded function.