title: Class constructor asks for 'customPredicate: Message.() -> Boolean' and I cant figure out what is it mean
body: <p>I have an the following Interface</p>
  <pre><code>interface Filter {
      fun checkFor(message: Message): Boolean = message.predicate()
      fun Message.predicate(): Boolean
  
  infix fun and(otherFilter: Filter): Filter = object : Filter {
      override fun Message.predicate(): Boolean =
          this@Filter.checkFor(this) &amp;&amp; otherFilter.checkFor(this)
  }
  
  infix fun or(otherFilter: Filter): Filter = object : Filter {
      override fun Message.predicate(): Boolean =
          this@Filter.checkFor(this) || otherFilter.checkFor(this)
  }
  
  operator fun not(): Filter = object : Filter {
      override fun Message.predicate(): Boolean = !this@Filter.checkFor(this)
  }
  
  class Custom(private val customPredicate: Message.() -&gt; Boolean) : Filter {
      override fun Message.predicate(): Boolean = customPredicate()
  }
  
  object All : Filter {
      override fun Message.predicate(): Boolean = true
  }
  </code></pre>
  <p>In this Interface I have a class named &quot;Custom&quot;
  which ask in the constructor for</p>
  <pre><code>class Custom(private val customPredicate: Message.() -&gt; Boolean)
  </code></pre>
  <p>And I have no idea how should I use this class to create my own Filter</p>
  <p>Please assist</p>