func Reflect(f Func, name string) bool {
	if r, ok := f.(Reflector); ok {
		return r.Reflect(name)
	}
	return reflect.TypeOf(f).Name() == name
}
Reflect checks if a Func can be considered to be of a given type.
If v implements Reflector, v.Reflect(name) is used to check for
compatability. If not, a simple string comparison is done against
whatever Go's reflect package claims the short name of the
underlying type to be.
package wdte
import (
	"fmt"
	"math/big"
	"reflect"
	"strings"
)
type Comparer interface {
	Compare(other Func) (int, bool)
}
type Lenner interface {
	Len() int
}
type Atter interface {
	At(i Func) (Func, error)
}
type Setter interface {
	Set(k, v Func) (Func, error)
}
type Reflector interface {
	Reflect(name string) bool
}