package ceylon.language;

public abstract class IdentifiableObject extends Object /* FIXME: implements Equality */ {

/* FIXME:
   shared default actual Boolean equals(Equality that) {
        if (is IdentifiableObject that) {
            return this===that;
        }
        else {
            return false;
        }
    }
    
    shared default actual Integer hash {
        return identityHash(this);
    }
    
    shared default actual String string {
        throw; //TODO!
    }
 */       
}
@@ -78,18 +78,8 @@
 ject
- /* FIXME:
  imp
@@ -99,48 +99,20 @@
 ity 
-*/ %7B%0A%0A/* FIXME:%0A   shared default actual
+%7B%0A%0A   public
  Boo
@@ -152,18 +152,31 @@
     if (
-is
+that instanceof
  Identif
@@ -187,20 +187,16 @@
 eObject 
-that
 ) %7B%0A    
@@ -214,19 +214,38 @@
 urn 
+Boolean.instance(
 this
+ 
 ==
-=
+ 
 that
+)
 ;%0A  
@@ -290,13 +290,20 @@
 urn 
+_
 false
+.value
 ;%0A  
@@ -313,32 +313,44 @@
    %7D%0A    %7D%0A    %0A
+   /* FIXME%0A
     shared defau
@@ -423,42 +423,41 @@
     
-%0A    shared default actual
+*/       %0A    %0A    public
  String 
 stri
@@ -456,14 +456,19 @@
 ing 
-s
+getS
 tring
+()
  %7B%0A 
@@ -479,16 +479,39 @@
    throw
+ new RuntimeException()
 ; //TODO
@@ -518,20 +518,9 @@
 !%0A    %7D%0A
- */       %0A
 %7D

implement Equality and start syncing with spec