title: How to cast to a type alias in Go?
body: <p>See <strong><a href="http://play.golang.org/p/RynMln1E7c">this playground snippet</a></strong>.</p>
  
  <p>Relevant code:</p>
  
  <pre><code>type somethingFuncy func(int) bool
  
  func funcy(i int) bool {
      return i%2 == 0
  }
  
  var a interface{} = funcy
  
  func main() {
  
      _ = a.(func(int) bool)  // Works
  
      fmt.Println("Awesome -- apparently, literally specifying the func signature works.")
  
      _ = a.(somethingFuncy)  // Panics
  
      fmt.Println("Darn -- doesn't get here. But somethingFuncy is the same signature as func(int) bool.")
  }
  </code></pre>
  
  <p>The first cast works, by explicitly declaring the type. But the second cast panics. Why? Is there a clean way to cast to a longer func signature?</p>