title: Casting from one pointer to pointer type to another in Golang error
body: <p>Can anyone tell my why this wouldn't compile?</p>
  
  <pre><code>package main
  
  type myint int
  func set(a **myint) {
      i := myint(5)
      *a = &amp;i 
  }
  
  func main() {
      var k *int
      set( (**myint)(&amp;k) ) // cannot convert &amp;k (type **int) to type **myint
      print( *k )
  }
  </code></pre>
  
  <p>My reasoning so far is this. All types in Golang are different, but it allows to convert from one type to another with C-like cast syntax as long as underlying types are identical. In my example, converting 'int' to 'myint' is not a problem. '*int' to '*myint' isn't either. It's when you have pointer to pointer problems arise. I've been stuck on this for the second day now. Any help is appreciated.</p>