-- functionextraction_extract_return_func_lit_7_3 --
package extract

import "go/ast"

func _() {
	ast.Inspect(ast.NewIdent("a"), func(n ast.Node) bool {
		//@mark(exSt4, "if")
		cond0, ret0 := fn0(n)
		if cond0 {
			return ret0
		} //@mark(exEn4, "}")
		return false
	})
	//@extractfunc(exSt4, exEn4)
}

func fn0(n ast.Node) (bool, bool) {
	if n == nil {
		return true, true
	}
	return false, false
}

