package ceylon.language;

import com.redhat.ceylon.compiler.java.metadata.Annotation;
import com.redhat.ceylon.compiler.java.metadata.Annotations;
import com.redhat.ceylon.compiler.java.metadata.Ceylon;
import com.redhat.ceylon.compiler.java.metadata.SatisfiedTypes;
import com.redhat.ceylon.compiler.java.metadata.TypeInfo;
import com.redhat.ceylon.compiler.java.metadata.TypeParameter;
import com.redhat.ceylon.compiler.java.metadata.TypeParameters;
import com.redhat.ceylon.compiler.java.metadata.Variance;

@Ceylon(major = 2)
@TypeParameters(@TypeParameter(value = "Element", variance = Variance.OUT))
@SatisfiedTypes({"ceylon.language.FixedSized<Element>", 
                 "ceylon.language.ContainerWithFirstElement<ceylon.language.Bottom,ceylon.language.Nothing>"})
public interface None<Element> extends FixedSized<Element> {
    
    @Annotations(@Annotation("actual"))
    @TypeInfo("ceylon.language.Nothing")
    @Override
    public Element getFirst();
    
    @Annotations({@Annotation("actual"), @Annotation("default")})
    @TypeInfo("ceylon.language.Iterator<Element>")
    @Override
    public Iterator<? extends Element> getIterator();
    
    @Annotations({@Annotation("actual"), @Annotation("default")})
    @Override
    public long getSize();
    
    @Annotations(@Annotation("actual"))
    @Override
    public boolean getEmpty();

}

@@ -842,32 +842,33 @@
    @Annotations(
+%7B
 @Annotation(%22act
@@ -868,24 +868,49 @@
 on(%22actual%22)
+, @Annotation(%22default%22)%7D
 )%0A    @TypeI
@@ -981,28 +981,176 @@
 getFirst();%0A
+%0A
     
+@Annotations(%7B@Annotation(%22actual%22), @Annotation(%22default%22)%7D)%0A    @TypeInfo(%22ceylon.language.Nothing%22)%0A    @Override%0A    public Element getLast();%0A
 %0A    @Annota

Add None.getLast()