in signature, use value encoding for params
updated FUNCTIONS definition

explicitly capture short form, long form, return type, signatures, and
description

use short form in signature strings
added function types

hierarchy from child up to root
created Function objects; added signatures