{- | Module : Data.Yoko Copyright : (c) The University of Kansas 2012 License : BSD3 Maintainer : nicolas.frisby@gmail.com Stability : experimental Portability : see LANGUAGE pragmas (... GHC) This omnibus module is the only necessary import for using the @yoko@ generic programming library. (Some sophisticated functions' types might require the import of the "Data.Yoko.TypeBasics" or "Data.Yoko.Each" modules.) The "Data.Yoko.HCompos" module defines the generic homomorphism; see the paper \"A Pattern for Almost Homomorphic Functions\" at , published at the Workshop on Generic Programming 2012. Much more details in my dissertation: . @dc@ type variables abstract over /fields types/. @dcs@ and @sum@ type variables abstract over sums of /fields types/. Types of the form @'DC' t@ are /disbanded data types/; for each fields type @dc@ in the resulting sum, @'Codomain' dc ~ t@. That means they all correspond to constructors from @t@. A complete Template Haskell deriver is provided in the "Data.Yoko.TH" module. It works for the data types that `instant-generics` works on, excluding indexed data types. Yell loudly if you need that... then send me an email :) HTH! -} module Data.Yoko (module Data.YokoRaw, module Data.Yoko.SmartPreciseCase, module Data.Yoko.TH) where import Data.YokoRaw hiding (precise_case0) import Data.Yoko.SmartPreciseCase import Data.Yoko.TH import Data.Yoko.Prelude ()