 	var y: Nano { return self * u_year }
 }
 
+let composed_difference = 1.h + 23.i + 45.s
+let composed_string: String = composed_difference.s
+
 func test_seconds() {
 	print("Testing second operations:\n")
 	print("\(Nano(500)) = \(500.ns)")

let u_nano = Nano(1),
	u_second = Nano(1_000_000_00),
	u_minute = u_second * 60,
	u_hour = u_minute * 60,
	u_day = 24 * u_hour,
	u_month = 30 * u_day,
	u_year = u_day * 365

struct Nano : CustomStringConvertible {
	var value: Int64 = 0

	//print(u_minute + u_second + Nano(500) + " = " + 1.i + 1.s + 500.ns)
	print("\(u_minute + u_second + Nano(500)) = \(1.i + 1.s + 500.ns)")
	print((u_minute + u_second + Nano(500)) + " = " + (1.i + 1.s + 500.ns))
	print("\(1.h + 23.i + 45.s) = \(composed_difference) = \(composed_string)")
	print("\(u_day) = \(1.d)")
	print("\(u_year) = \(1.y)")
	print("\(u_year - 1.d)")

	let a = composed_difference + 3.y + 6.m + 4.d + 12_987.ns
	print("total \(a)")
	print("\tyear \(a.year())")
	print("\tmonth \(a.month())")
	print("\tday \(a.day())")
	print("\thour \(a.hour())")
	print("\tminute \(a.minute())")
	print("\tsecond \(a.second())")
}
