title: Treat scala function with default parameter type as if it did not have default parameters
body: <p>Disclaimer: I'm new to Scala.</p>
  
  <p>I want to pass a function with default parameters as if its type did not have default parameters</p>
  
  <pre><code>import scala.util.hashing.MurmurHash3
  
  type Record = Map[String, String]
  type Dataset = Seq[Record]
  
  def dropDuplicates(dataset: Dataset, keyF: Record =&gt; Any = recordHash) : Dataset = {
    // keep only distinct records as defined by the key function
    // removed method body for simplicity
    return dataset
  }
  
  def recordHash(record: Record, attributes: Option[Seq[String]] = None) : Int = {
    val values : Seq[String] = attributes
      .getOrElse(record.keys.toSeq.sorted)
      .map(attr =&gt; record(attr))
      return MurmurHash3.seqHash(values)
  }
  </code></pre>
  
  <p>Here's the error I'm getting at compile time:</p>
  
  <pre><code>error: type mismatch;
  [ant:scalac]  found   : (Record, Option[Seq[String]]) =&gt; Int
  [ant:scalac]  required: Record =&gt; Any
  [ant:scalac]   def dropDuplicates(dataset: Dataset, keyF: Record =&gt; Any = recordHash) : Dataset = {
  </code></pre>
  
  <p>Intuitively, I think of <code>recordHash</code> as type <code>Record =&gt; Int</code> when the default parameter <code>attributes</code> is not provided. Is there a way to treat <code>recordHash</code> as type <code>Record =&gt; Int</code>?</p>