add: NewSet function
add: generateFunction and generateRule functions in init
add: Expression type in prevision of change to Function type
switching Function from func to struct
go fmt