From 24d7fab85b2eb1b7996fd0ceccdd0377f1ce087b Mon Sep 17 00:00:00 2001
From: Andreas Grois <andi@grois.info>
Date: Fri, 1 Dec 2023 23:21:14 +0100
Subject: Day 1

---
 Common/DayPart.lean | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 Common/DayPart.lean

(limited to 'Common/DayPart.lean')

diff --git a/Common/DayPart.lean b/Common/DayPart.lean
new file mode 100644
index 0000000..c6a4d44
--- /dev/null
+++ b/Common/DayPart.lean
@@ -0,0 +1,12 @@
+namespace DayPart
+
+abbrev Days := {d : Nat // d > 0 ∧ d <= 25}
+inductive Parts
+| One
+| Two
+
+class Parse (day : Days) {ι : outParam Type} where
+  parse : String → Option ι
+
+class Part (day : Days) (part : Parts) {ι ρ : outParam Type} [Parse day (ι := ι)] [ToString ρ] where
+  run : ι → Option ρ -- can fail, because it deals with user input...
-- 
cgit v1.2.3

