package org.libspark.common.ability { /** * 等価性を比較可能なオブジェクト. */ public interface IComparable { /** * このオブジェクトと 'other' が等しいか? * * Require: other != null * Ensure: result implies Classes.sameType(other, this) * Ensure: result implies other.isEqual(this) */ function isEqual(other:IComparable):Boolean; /** * このオブジェクトと 'other' が再帰的に等しいか? * * Require: other != null * Ensure: result implies Classes.sameType(other, this) * Ensure: result implies other.isDeepEqual(this) */ function isDeepEqual(other:IComparable):Boolean; } }