Why is a function literal returning an int not assignable to a function returning interface{}? : <p>I couldn't reason why this code does <a href="https://play.golang.org/p/yOzukoJhJ4N" rel="nofollow noreferrer">not</a> compile:</p>

<pre><code>package main

import "math/rand"

type ooThinAir func() interface{}

func Int() ooThinAir {
    return func() int {
        return rand.Intn(100)
    }
}
func main() {
}

// fails with: cannot use func literal (type func() int) as type ooThinAir in return argument
</code></pre>

<p>given, according to the GoLang Spec, <a href="https://golang.org/ref/spec#Interface_types" rel="nofollow noreferrer">that</a> all types implement the empty interface <code>interface{}</code>. Why is the function literal <em>not</em> assignable to type <code>ooThinAir</code>? </p>
