-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Template Haskell to automatically pass values to functions
--
-- See readme.md
@package autoapply
@version 0.4
module AutoApply
-- | autoapply argsSubsuming argsUnifying fun creates an
-- expression which is equal to fun applied to as many of the
-- values in argsSubsuming and argsUnifying as
-- possible.
--
-- The types of first list of args must subsume the type of the argument
-- they're passed to. The types of the second list must merely unify.
autoapply :: [Name] -> [Name] -> Name -> Q Exp
-- | autoapplyDecs mkName argsSubsuming argsUnifying funs will
-- wrap every function in funs by applying it to as many of the
-- values in argsSubsuming and argsUnifying as
-- possible. The new function name will be mkName applied to the
-- wrapped function name.
--
-- The types of first list of args must subsume the type of the argument
-- they're passed to. The types of the second list must merely unify.
--
-- Type signatures are not generated, so you may want to add these
-- yourself or turn on NoMonomorphismRestriction if you have
-- polymorphic constraints.
autoapplyDecs :: (String -> String) -> [Name] -> [Name] -> [Name] -> Q [Dec]
instance Data.Traversable.Traversable AutoApply.TypeF
instance Data.Foldable.Foldable AutoApply.TypeF
instance GHC.Base.Functor AutoApply.TypeF
instance GHC.Show.Show a => GHC.Show.Show (AutoApply.TypeF a)
instance GHC.Show.Show AutoApply.ArgProvenance
instance GHC.Show.Show AutoApply.Function
instance GHC.Show.Show AutoApply.Given
instance GHC.Show.Show AutoApply.UnificationType
instance Control.Unification.Types.Unifiable AutoApply.TypeF