From 116546a996a12a2e68a68ddf7926d2b4e708c52c Mon Sep 17 00:00:00 2001
From: Arya-Elfren <109028294+Arya-Elfren@users.noreply.github.com>
Date: Wed, 26 Apr 2023 22:07:20 +0100
Subject: [PATCH 1/3] Clarify `f16` maths - closes #204

---
 exercises/060_floats.zig | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/exercises/060_floats.zig b/exercises/060_floats.zig
index 8ba51db..0ebd7a2 100644
--- a/exercises/060_floats.zig
+++ b/exercises/060_floats.zig
@@ -1,7 +1,8 @@
 //
 // Zig has support for IEEE-754 floating-point numbers in these
 // specific sizes: f16, f32, f64, f80, and f128. Floating point
-// literals may be written in scientific notation:
+// literals may be written in the same ways as integers but also
+// in scientific notation:
 //
 //     const a1: f32 = 1200.0;     // 1,200
 //     const a2: f32 = 1.2e+3;     // 1,200
@@ -26,7 +27,10 @@
 // operations with numeric literals, ensure the types match. Zig
 // does not perform unsafe type coercions behind your back:
 //
-//     var foo: f16 = 13.5 * 5;   // ERROR!
+//     fn foo(bar: u16) f16 { return 13.5 * bar; } // ERROR!
+//     var foo: f16 = 13.5 * @as(u8, 5); // ERROR!
+//     var foo: f16 = 13.5 * 5; // This is a safe compile-time
+//                              // conversion, so no problem!
 //     var foo: f16 = 13.5 * 5.0; // No problem, both are floats
 //
 // Please fix the two float problems with this program and

From 599bea57051efcfaa7a81cb2a846fe095b9759c0 Mon Sep 17 00:00:00 2001
From: Arya-Elfren <109028294+Arya-Elfren@users.noreply.github.com>
Date: Fri, 28 Apr 2023 11:32:45 +0100
Subject: [PATCH 2/3] Simplify `f16` coersion example

---
 exercises/060_floats.zig | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/exercises/060_floats.zig b/exercises/060_floats.zig
index 0ebd7a2..a04a54d 100644
--- a/exercises/060_floats.zig
+++ b/exercises/060_floats.zig
@@ -23,15 +23,12 @@
 //     const pi: f16 = 3.1415926535;   // rounds to 3.140625
 //     const av: f16 = 6.02214076e+23; // Avogadro's inf(inity)!
 //
-// A float literal has a decimal point. When performing math
+// A float literal doesn't need a decimal point. When performing math
 // operations with numeric literals, ensure the types match. Zig
 // does not perform unsafe type coercions behind your back:
 //
-//     fn foo(bar: u16) f16 { return 13.5 * bar; } // ERROR!
-//     var foo: f16 = 13.5 * @as(u8, 5); // ERROR!
-//     var foo: f16 = 13.5 * 5; // This is a safe compile-time
-//                              // conversion, so no problem!
-//     var foo: f16 = 13.5 * 5.0; // No problem, both are floats
+//    var foo: f16 = 5; // NO ERROR
+//    var foo: f16 = @as(u16, 5); // ERROR
 //
 // Please fix the two float problems with this program and
 // display the result as a whole number.

From c2fe843a8a780e77e9875c9f6da8b3c3999915f2 Mon Sep 17 00:00:00 2001
From: Arya-Elfren <109028294+Arya-Elfren@users.noreply.github.com>
Date: Fri, 28 Apr 2023 15:11:43 +0100
Subject: [PATCH 3/3] 060 - remove `@as()`

---
 exercises/060_floats.zig | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/exercises/060_floats.zig b/exercises/060_floats.zig
index a04a54d..1320171 100644
--- a/exercises/060_floats.zig
+++ b/exercises/060_floats.zig
@@ -4,8 +4,8 @@
 // literals may be written in the same ways as integers but also
 // in scientific notation:
 //
-//     const a1: f32 = 1200.0;     // 1,200
-//     const a2: f32 = 1.2e+3;     // 1,200
+//     const a1: f32 = 1200;       //    1,200
+//     const a2: f32 = 1.2e+3;     //    1,200
 //     const b1: f32 = -500_000.0; // -500,000
 //     const b2: f32 = -5.0e+5;    // -500,000
 //
@@ -23,12 +23,14 @@
 //     const pi: f16 = 3.1415926535;   // rounds to 3.140625
 //     const av: f16 = 6.02214076e+23; // Avogadro's inf(inity)!
 //
-// A float literal doesn't need a decimal point. When performing math
-// operations with numeric literals, ensure the types match. Zig
-// does not perform unsafe type coercions behind your back:
+// When performing math operations with numeric literals, ensure
+// the types match. Zig does not perform unsafe type coercions
+// behind your back:
 //
 //    var foo: f16 = 5; // NO ERROR
-//    var foo: f16 = @as(u16, 5); // ERROR
+//
+//    var foo: u16 = 5; // A literal of a different type
+//    var bar: f16 = foo; // ERROR
 //
 // Please fix the two float problems with this program and
 // display the result as a whole number.