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

}

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

    
    public let hashValue: Int = nextHashValue()
    
    public var name: IdentifierExpression
    public let receiverType: TypeIdentifierExpression
    public let parameters: [PairExpression]
    public let returnType: TypeIdentifierExpression?
    public let genericConstraints: ConstraintList?
}

public struct MethodExpression : ExportableExpression {
    public let signature: StaticSignatureExpression
    public let body: [Statement]
