import java.lang {

"A Ceylon [[Iterable]] that adapts an instance of Java's 
 [[java.lang::Iterable]], allowing its elements to be 
 iterated using a `for` loop.
     IntArray ints = ... ;
     for (int in CeylonIterable(Arrays.asList(*ints.array))) {

 If the given [[iterable]] contains null elements, an
 optional [[Element]] type must be explicitly specified, for


 If a non-optional `Element` type is specified, an
 [[AssertionError]] will occur whenever a null value is
 encountered while iterating the stream.

 **Note**: Since Ceylon 1.2.1 it is possible to use 
 [[java.lang::Iterable]] directly in a Ceylon `for` statement:
     JavaIterable<Foo> iterable = ... ;
     for (foo in iterable) {
shared class CeylonIterable<Element>(iterable)
        satisfies Iterable<Element> {

    JIterable<out Element> iterable;

    iterator() => CeylonIterator(iterable.iterator());