-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Types for the fusion-plugin package. -- -- GHC package that provides types that when used in a package can be -- identified by the fusion-plugin package to perform any extra -- optimizations. @package fusion-plugin-types @version 0.1.0 module Fusion.Plugin.Types -- | A GHC annotation to inform the plugin to aggressively inline join -- points that perform a case match on the constructors of the annotated -- type. Inlining enables case-of-case transformations that would -- potentially eliminate the constructors. -- -- This annotation is to be used on types whose constructors are known to -- be involved in case-of-case transformations enabling stream fusion via -- elimination of those constructors. -- -- It is advised to use unique types for intermediate stream state that -- is to be annotated with Fuse. If the annotated type is also -- used for some other purpose this annotation may inline code that is -- not involved in stream fusion and should otherwise not be inlined. -- --
--   {-# ANN type Step Fuse #-}
--   data Step s a = Yield a s | Skip s | Stop
--   
data Fuse Fuse :: Fuse instance Data.Data.Data Fusion.Plugin.Types.Fuse instance GHC.Classes.Eq Fusion.Plugin.Types.Fuse