myListLength function
my point, for separation between data and type construction
my binary tree recursive type