added example 4.
added annotated functions.
added ensure decorator.
fixed wrapper.
improved type descriptor.
added a example using properties instead descriptors.