     
     public let hashValue: Int = nextHashValue()
     
-    public let name: IdentifierExpression
+    public var name: IdentifierExpression
     public let receiverType: TypeIdentifierExpression
     public let parameters: [PairExpression]
     public let returnType: TypeIdentifierExpression?
     public let genericConstraints: ConstraintList?
 }
 
-//public struct InstanceSignatureExpression : SignatureExpression {
-//    public typealias Receiver = PairExpression
-//    
-//    public let hashValue: Int = nextHashValue()
-//    
-//    public let name: IdentifierExpression
-//    public let receiverType: PairExpression
-//    public let parameters: [PairExpression]
-//    public let returnType: TypeIdentifierExpression?
-//    public let genericConstraints: ConstraintList?
-//}
-
 public struct MethodExpression : ExportableExpression {
     public let signature: StaticSignatureExpression
     public let body: [Statement]

}

public struct TypeDefExpression : ExportableExpression {
    public let name: TypeIdentifierExpression
    public let properties: [PairExpression]
    public let propertyOrder: [String : Int]
    // TODO - Trait conformance

}

public struct APIExpression : TopLevelExpression {
    public var name: TypeIdentifierExpression
    public let body: [Expression]
    public let importPaths: [StringLiteralExpression]
    public let within: TypeIdentifierExpression?
