-- Discharged coeffect assumptions
relateByAssumption s rel (_, Discharged _ c1) (_, Discharged _ c2) = do
  (kind, (inj1, inj2)) <- mguCoeffectTypesFromCoeffects s c1 c2
  addConstraint (rel s (inj1 c1) (inj2 c2) kind)

-- Linear binding and a graded binding (likely from a promotion)
relateByAssumption s rel (_, Discharged _ c1) (_, Discharged _ c2) = do
  (kind, (inj1, inj2)) <- mguCoeffectTypesFromCoeffects s c1 c2
  addConstraint (rel s (inj1 c1) (inj2 c2) kind)

-- Linear binding and a graded binding (likely from a promotion)
relateByAssumption s rel (_, Discharged _ c1) (_, Discharged _ c2) = do
  (kind, (inj1, inj2)) <- mguCoeffectTypesFromCoeffects s c1 c2
  addConstraint (rel s (inj1 c1) (inj2 c2) kind)

-- Linear binding and a graded binding (likely from a promotion)