Sto facendo un piccolo pacchetto che definisce wrapper per le tuple e aggiunge casi loro forma, comeCome creare un pacchetto non TH dal codice generato usando Template Haskell?
newtype Tuple2 a = Tuple2 { untuple2 :: (a, a) }
deriving (...)
tuple2 :: a -> a -> Tuple2 a
tuple2 = ...
instance Traversable Tuple2 where ...
instance Foldable Tuple2 where ...
instance Functor Tuple2 where ...
instance Applicative Tuple2 where ...
Questo ripete 2-15, in modo che appaia come un lavoro di Template Haskell.
Il codice generato è sempre compatibile con Haskell 98, quindi mi piacerebbe che anche il risultato finale fosse un pacchetto Haskell 98 compatibile. È possibile generare un pezzo di codice usando Template Haskell e creare un pacchetto che non usi TH stesso? (preferirei un modo automatico, se possibile.)
Ho provato zeroth, ma non viene compilato. Proverò a contattare l'autore originale. –