Including the dependency between ast() : X, with the specific ast() :
X1, ast() : X2, when X1/X2 is constructed instead of X