module Hamster::Immutable::InstanceMethods

def clone

def clone
  self
end

def dup

def dup
  self
end

def immutable!

def immutable!
  freeze
end

def immutable?

def immutable?
  frozen?
end

def transform(&block)

def transform(&block)
  __hamster_immutable_dup__.tap { |copy| copy.instance_eval(&block) }.immutable!
end

def transform_unless(condition, &block)

def transform_unless(condition, &block)
  condition ? self : transform(&block)
end