Can I create an alias of a type in Golang? : <p>I'm struggling with my learning of Go.</p>

<p>I found this neat implementation of a Set in go: <a href="https://github.com/fatih/set" rel="noreferrer">gopkg.in/fatih/set.v0</a>, but I'd prefer naming my sets with a more explicit name that <code>set.Set</code>, doing something like:</p>

<pre><code>type View set.Set
</code></pre>

<p>In essence, I want my <code>View</code> type to inherit <code>set.Set</code>'s methods. Because, well, <code>View</code> <strong>is a</strong> <code>set.Set</code> of descriptors. But I know Go is pretty peaky on inheritance, and typing in general.</p>

<p>For now I've been trying the following <em>kinda</em> inheritance, but it's causing loads of errors when trying to use some functions like <code>func Union(set1, set2 Interface, sets ...Interface) Interface</code> or <code>func (s *Set) Merge(t Interface)</code>:</p>

<pre><code>type View struct {
    set.Set
}
</code></pre>

<p>I'd like to know if there's a way to achieve what I want in a Go-like way, or if I'm just trying to apply my good-ol' OO practices to a language that discards them, please.</p>
