// +build ignore,OMIT

package main

import (
	"fmt"
	"reflect"
)

func makeSwap(fptr interface{}) {
	swap := func(in []reflect.Value) []reflect.Value {
		return []reflect.Value{in[1], in[0]}
	}
	fn := reflect.ValueOf(fptr).Elem()
	v := reflect.MakeFunc(fn.Type(), swap)
	fn.Set(v)
}

func main() {
	var fn func(int, int) (int, int)
	makeSwap(&fn)
	fmt.Println(fn(0, 1))
}
