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]
--
⑨