class Hamster::Stream

def initialize(head, &tail)

def initialize(head, &tail)
  @head = head
  @tail = tail
  @mutex = Mutex.new
end

def tail

def tail
  @mutex.synchronize do
    unless defined?(@value)
      @value = @tail.call
    end
  end
  @value
end