-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Data To Class transformation.
--
-- Transform data declarations to class definitions.
--
-- The way is explained in Data Declarations to Class Definitions.
-- You can find more information in the homepage of the package.
--
-- Changes from last version:
--
--
-- - Modified some documentation.
-- - Fixed a non-exhaustive pattern matching error in
-- dataToClassWith.
--
@package DTC
@version 1.0.1
-- | Some useful functions.
module Language.Haskell.DTC.Mod
-- | Lift a function over [HsDecl] to a function
-- over HsModule.
modifyHsDecls :: ([HsDecl] -> [HsDecl]) -> (HsModule -> HsModule)
-- | Skip a bang in a type.
unBangType :: HsBangType -> HsType
-- | Lift a function over String to a function over HsName.
modifyHsName :: (String -> String) -> (HsName -> HsName)
-- | Class definition from a data declaration.
module Language.Haskell.DTC.Class
-- | Transform a data declaration to a class definition. The String
-- argument will be the name of the type variable of the class
-- definition.
dataToClassWith :: String -> HsDecl -> HsDecl
-- | Transform a data declaration to a class definition. Equivalent to
-- dataToClassWith "t".
dataToClass :: HsDecl -> HsDecl
-- | All you need to parse a module.
module Language.Haskell.DTC.Parser
-- | The result of a parse.
data ParseResult a :: * -> *
-- | A Haskell source module.
data HsModule :: *
-- | Parse of a string, which should contain a complete Haskell 98 module.
parseModule :: String -> ParseResult HsModule
-- | parseModuleWithFN fileName module parse module with
-- a fileName associated.
parseModuleWithFN :: FilePath -> String -> ParseResult HsModule
-- | Parse a module from a source code file. It throws an error if parsing
-- fails.
parseModuleWithSrc :: FilePath -> IO HsModule
-- | Main module of DTC.
module Language.Haskell.DTC