shithub: MicroHs

Download patch

ref: 13d3ccb7d07d81f7a0dfa99db8d166b1bddc355e
parent: 5cf57173904d6c8601682c36ec286bb3ea839a02
author: Lennart Augustsson <lennart@augustsson.net>
date: Thu Aug 22 12:39:06 EDT 2024

Add a fake Data.Data

--- /dev/null
+++ b/lib/Data/Data.hs
@@ -1,0 +1,5 @@
+module Data.Data(Data(..), module Data.Typeable) where
+import Data.Typeable
+
+-- Fake Data class until the type checker bug has been fixed
+class (Typeable a) => Data a
--- a/src/MicroHs/Deriving.hs
+++ b/src/MicroHs/Deriving.hs
@@ -20,6 +20,7 @@
 derivers =
   [("Data.Bounded.Bounded",   derBounded)
   ,("Data.Enum.Enum",         derEnum)
+  ,("Data.Data.Data",         derData)
   ,("Data.Eq.Eq",             derEq)
   ,("Data.Ix.Ix",             derNotYet)
   ,("Data.Ord.Ord",           derOrd)
@@ -324,3 +325,12 @@
   let s = unIdent i
   in  if isAlpha (head s) then s else "(" ++ s ++ ")"
 
+--------------------------------------------
+
+-- Deriving for the fake Data class.
+derData :: Deriver
+derData lhs cs edata = do
+  hdr <- mkHdr lhs cs edata
+  let
+    inst = Instance hdr []
+  return [inst]
--