@hackage / stock-profunctors

Derive Profunctor via the stock plugin

Latest0.1.0.0

About

Metadata

  • Last updated , by BaldurBlondal
  • License BSD-3-Clause
  • Categories Type System
  • Maintained by: baldur.blondal@iohk.io

  • Lottery factor: 0

Links

Installation

Tested Compilers

  1. 9.10.3
  2. 9.8.1

Readme

The stock plugin provides a newtype Stock for deriving and synthesising instances at compile time. stock-profunctors extends it to support Profunctor.

{-# options_ghc -fplugin Stock #-}

{-# language DerivingVia #-}

import Data.Kind
import Stock
import Stock.Profunctor

type    Foo :: Type -> Type -> Type
newtype Foo i o = Foo ((((o -> i) -> o) -> i) 
                    -> (((i -> o) -> i) -> o))
  deriving Functor    via Stock1 (Foo i)
  deriving Profunctor via Stock2 Foo

stock-profunctors provides an instance for DeriveStock2 Profunctor that signals to the plugin how to derive Profunctor.

stock companion packages include: