title: Are empty interfaces code smell?
body: <p>I have a function that returns same kind of objects (query results) but with no properties or methods in common. In order to have a common type I resorted using an empty interface as a return type and "implemented" that on both. </p>
  
  <p>That doesn't sound right of course. I can only console myself by clinging to hope that someday those classes will have something in common and I will move that common logic to my empty interface. Yet I'm not satisfied and thinking about whether I should have two different methods and conditionally call next. Would that be a better approach? </p>
  
  <p>I've been also told that .NET Framework uses empty interfaces for tagging purposes. </p>
  
  <p>My question is: is an empty interface a strong sign of a design problem or is it widely used? </p>
  
  <p><strong>EDIT</strong>: For those interested, I later found out that discriminated unions in functional languages are the perfect solution for what I was trying to achieve. C# doesn't seem friendly to that concept yet. </p>
  
  <p><strong>EDIT</strong>: I wrote a <a href="https://hackernoon.com/are-interfaces-code-smell-bd19abc266d3#.dvyk5m4ge" rel="noreferrer">longer piece</a> about this issue, explaining the issue and the solution in detail.</p>