Available for all representable types

Produce all children of a datastructure with the same type. Note
that subtrees is available for all representable types. For those
that are not recursive datatypes, subtrees will always return the
empty list. But, these trivial instances are convenient to have for
the Shrink operation below.