vinyl-utils-0.3.0.1: Utilities for vinyl

Copyright(c) Marcin Mrotek 2014
LicenseBSD3
Maintainermarcin.jan.mrotek@gmail.com
Safe HaskellNone
LanguageHaskell2010
Extensions
  • MonoLocalBinds
  • TypeFamilies
  • PolyKinds
  • DataKinds
  • KindSignatures
  • TypeOperators
  • ExplicitNamespaces

Data.Vinyl.Utils.Const

Description

Operations on constant type records.

Synopsis

Documentation

cfmap :: (a -> b) -> Rec (Const a) rs -> Rec (Const b) rs Source #

Map a function over a constant type record.

cpure :: Record rs => a -> Rec (Const a) rs Source #

Extension of pure to constant type records.

capp :: Rec (Const (a -> b)) rs -> Rec (Const a) rs -> Rec (Const b) rs Source #

Extension of (*) to constant type records.

rconst :: (Applicative f, RecApplicative rs) => f a -> f (Rec (Const a) rs) Source #

constCommute :: Functor f => Const (f a) b -> Compose f (Const a) b Source #

Commute a constant functor with another functor.

rtraverseconst :: Applicative f => Rec (Const (f a)) rs -> f (Rec (Const a) rs) Source #

Distribute a functor over a constant type record.

class Record (rs :: [k]) where Source #

Create a dummy record parametrized by Proxy. The class is named Record to signify that every possible type list is its instance.

Minimal complete definition

proxyRecord

Instances

Record k ([] k) Source # 

Methods

proxyRecord :: Rec [k] (Proxy [k]) rs Source #

Record k rs => Record k ((:) k r rs) Source # 

Methods

proxyRecord :: Rec ((k ': r) rs) (Proxy ((k ': r) rs)) rs Source #