mergeUnifiers :: [Unification a b] -> [Substitution a b]
mergeUnifiers = foldl' addUni []
  where addUni subs NoUnifier = subs
        addUni subs (Unifier sub) = sub : subs
mergeUnifiers :: [Unification a b] -> [Substitution a b]
mergeUnifiers = foldl' addUni []
  where addUni subs NoUnifier = subs
        addUni subs (Unifier sub) = sub : subs
mergeUnifiers = foldl' addUni []
  where addUni subs NoUnifier = subs
        addUni subs (Unifier sub) = sub : subs