An open API service indexing awesome lists of open source software.

https://github.com/composewell/fusion-plugin-types


https://github.com/composewell/fusion-plugin-types

Last synced: 12 months ago
JSON representation

Awesome Lists containing this project

README

          

# fusion-plugin-types

[![Hackage](https://img.shields.io/hackage/v/fusion-plugin-types.svg?style=flat)](https://hackage.haskell.org/package/fusion-plugin-types)
![](https://github.com/composewell/fusion-plugin-types/workflows/Haskell%20CI/badge.svg)

## Motivation

This package provides types needed to run the fusion-plugin
plugin. This package is separated from the
[fusion-plugin](https://github.com/composewell/fusion-plugin) package
so that library authors can annotate the types that `fusion-plugin`
should try to fuse but avoid the `ghc` dependency in the library
itself.

## Using the package

To enable support for using the `fusion-plugin` plugin, add this
package to your `build-depends` and annotate your types with `Fuse`
type from `Fusion.Plugin.Types` module.

```haskell
import Fusion.Plugin.Types (Fuse (..))

{-# ANN type Step Fuse #-}
data Step s a = Yield a s | Skip s | Stop
```

## See Also

* [fusion-plugin](https://github.com/composewell/fusion-plugin)