type FnType = fn () bool fn foo() int { return 0 } fn bar() bool { return true } fn main() { // acceptable ones _ := unsafe { FnType(nil) } _ := unsafe { FnType(0) } _ := unsafe { FnType(foo) } _ := unsafe { FnType(bar) } _ := FnType(bar) _ := ?FnType(none) _ := ?FnType(bar) _ := unsafe { ?FnType(foo) } // wrong ones _ := FnType(foo) _ := FnType(nil) _ := FnType(0) _ := FnType('foo') _ := FnType(none) _ := ?FnType(0) _ := ?FnType(nil) _ := ?FnType(foo) }