/generic-lens-labels

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

master build: Build Status

develop build: Build Status

develop branch

I may rebase develop from time to time, let me know if that's causing you problems.

Summary

This package provides the module Data.Generic.Labels, which provides an IsLabel instance allowing one to use OverloadedLabels to access field lenses from the generic-lens library.

As the IsLabel instance provided is necessarily orphan, your code will break if you depend on this library and any other library that provides an orphan IsLabel instance at the same time. As such, this should be considered a toy.

Example:

{-# LANGUAGE OverloadedLabels, DeriveGeneric #- }

module Example

import Data.Generics.Labels()
import GHC.Generics
import Control.Lens

data Foo = Foo {bar :: Int} deriving (Generic)

_bar :: Lens' Foo Int
_bar = #bar