summaryrefslogtreecommitdiff
path: root/src/Inky/Data/Irrelevant.idr
diff options
context:
space:
mode:
authorGreg Brown <greg.brown01@ed.ac.uk>2024-10-28 15:34:16 +0000
committerGreg Brown <greg.brown01@ed.ac.uk>2024-10-28 15:34:16 +0000
commite258c78a5ab9529242b4c8fa168eda85430e641e (patch)
tree939ced9a71c94736222d05616a46dfc7292accd0 /src/Inky/Data/Irrelevant.idr
parentd926ce9f2d1144f329598a30b3ed2e48899519b2 (diff)
Make everything relevant.
Too few proofs were relevant. Now they are.
Diffstat (limited to 'src/Inky/Data/Irrelevant.idr')
-rw-r--r--src/Inky/Data/Irrelevant.idr19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/Inky/Data/Irrelevant.idr b/src/Inky/Data/Irrelevant.idr
new file mode 100644
index 0000000..ca72470
--- /dev/null
+++ b/src/Inky/Data/Irrelevant.idr
@@ -0,0 +1,19 @@
+module Inky.Data.Irrelevant
+
+public export
+record Irrelevant (a : Type) where
+ constructor Forget
+ 0 value : a
+
+public export
+Functor Irrelevant where
+ map f x = Forget (f x.value)
+
+public export
+Applicative Irrelevant where
+ pure x = Forget x
+ f <*> x = Forget (f.value x.value)
+
+public export
+Monad Irrelevant where
+ join x = Forget (x.value.value)