 
 /// Takes an unevaluated closure \c value and returns a lazily-evaluating wrapper for it.
 func delay<T>(value: @auto_closure () -> T) -> Delay<T> {
-	return Delay(thunk: value)
+	return Delay(value)
 }
 
 /// A lazily-provided value, convertible to its underlying type.

	var _thunk: (() -> T)?
	var _value: Box<T?>
	
	init(thunk: () -> T) {
		_thunk = thunk
		_value = box(nil)
	}

	}
}


func == <T : Equatable> (left: Delay<T>, right: Delay<T>) -> Bool {
	return ((left as T) == (right as T))
}


func hash<Delayed : Hashable>(delay: Delay<Delayed>) -> Int {
	return (delay as Delayed).hashValue
}
