{- | This module provides Template Haskell splices that can be used to derive boilerplate instances for HMock. There are 12 splices described here, based on all combinations of three choices: * Whether to generate a 'Test.HMock.Mockable' instance, an instance for 'Test.HMock.MockT', or both. * Whether the argument is a class name, or a type which may be partially applied to concrete arguments. * Whether options are passed to customize the behavior. -} module Test.HMock.TH ( makeMockable, makeMockableWithOptions, makeMockableBase, makeMockableBaseWithOptions, deriveMockable, deriveMockableWithOptions, deriveMockableBase, deriveMockableBaseWithOptions, deriveForMockT, deriveForMockTWithOptions, makeMockableType, makeMockableTypeWithOptions, makeMockableBaseType, makeMockableBaseTypeWithOptions, deriveMockableType, deriveMockableTypeWithOptions, deriveMockableBaseType, deriveMockableBaseTypeWithOptions, deriveTypeForMockT, deriveTypeForMockTWithOptions, MockableOptions (..), ) where import Test.HMock.Internal.TH