multirec-0.2: Generic programming with systems of recursive datatypesSource codeContentsIndex
This module contains Template Haskell code that can be used to automatically generate the boilerplate code for the multiplate library. The constructor information can be generated per datatype, the rest per system of datatypes.
deriveConstructors :: [Name] -> Q [Dec]
deriveSystem :: Name -> [Name] -> String -> Q [Dec]
derivePF :: String -> [Name] -> Q [Dec]
deriveIx :: Name -> [Name] -> Q [Dec]
deriveConstructors :: [Name] -> Q [Dec]Source
Given a list of datatype names, derive datatypes and instances of class Constructor.
deriveSystem :: Name -> [Name] -> String -> Q [Dec]Source
Given the name of the index GADT, the names of the types in the system, and the name (as string) for the pattern functor to derive, generate the Ix and PF instances. IMPORTANT: It is assumed that the constructors of the GADT have the same names as the datatypes in the family.
derivePF :: String -> [Name] -> Q [Dec]Source
Derive only the PF instance. Not needed if deriveSystem is used.
deriveIx :: Name -> [Name] -> Q [Dec]Source
Derive only the Ix instances. Not needed if deriveSystem is used.
Produced by Haddock version 2.4.2