collectLeaves :: ConsPDTree -> [([G S], [G S])]
collectLeaves (Leaf  gs _ _ v) = [(gs, v)]
collectLeaves :: ConsPDTree -> [([G S], [G S])]
collectLeaves (Leaf  gs _ _ v) = [(gs, v)]
collectLeaves (Leaf  gs _ _ v) = [(gs, v)]