vinyl-utils-0.2.0.4: 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 where Source

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

Instances

Record k ([] k) Source 
Record k rs => Record k ((:) k r rs) Source