HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulefusion-plugin-types-0.1.0Haskell2010

Fusion.Plugin.Types

  • 1 type
datadata Fuse
#

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
Instances2Eq, Data
  • Eq FuseDefined in fusion-plugin-types-0.1.0 · Fusion.Plugin.Types
  • Data FuseDefined in fusion-plugin-types-0.1.0 · Fusion.Plugin.Types