kNatural

@interface kNatural : kObject
{
@private
  natural value;
}

@property(nonatomic) natural value;

+ (kNatural*)new:(natural)v;

- (kNatural*)init:(natural)v;

- (kNatural*)copy;

- (kBool*)isEqual:(kNatural*)n;

@end
@implementation kNatural

@synthesize value;

+ (kNatural*)new:(natural)v
{
  return [[kNatural alloc] init:v];
}

- (kNatural*)init:(natural)v
{
  if(self = [super init])
    value = v;

  return self;
}

- (kNatural*)copy
{
  return [[self class] new:value];
}

- (kBool*)isEqual:(kNatural*)n
{
  if(value == [n value])
    return [kBool yes];
  else
    return [kBool no];
}

@end