That it can do so is implicit in this instance: > (Rel8able t', t' ~ Choose (Algebra t) t, x ~ t' Expr, result ~ Result) => ToExprs x (t result) But perhaps it could merit an explicit mention.