Showing unapproved comments in a discussion system
What about something like this:

sealed abstract class CommentVisibility {
  def shallShow(comment: Comment): Boolean
}

object CommentVisibility {
  case object HideUnapproved
  case object ShowUnapproved
  case class ShowAllByUser(userId)
}


Usage:

renderPage(page, CommentVisibility.ShowUnapproved)


That's easy to understand :-) And can be amended to include e.g. showing/hiding comments with too many flags. (One would add another case class, perhaps using the Composite design pattern)

And reminds of CSS I think: "visibility: hidden / visible"