defaultValue: fix nontermination when codomain is cyclic
defaultValue: fix returning a product instead of a label when codomain
              is a union. The issue was partially masked by
              1) that products and labels are syntactically
                 indistinguishable because they are the same color
              2) that when changing the relation type to label,
                 an arbitrary label is chosen, and only the relation inside
                 it is created by defaultValue (so when choosing a value of
                 ['a ['b {}]], changing the relation type to label changes
                 the relation to 'a {'b {}})