packages feed

columbia-0.1.0.0: src/Data/Columbia/FRecord.hs

{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, OverlappingInstances, Trustworthy #-}

module Data.Columbia.FRecord where

import Data.Generics.SYB.WithClass.Context

class HasField scheme f where
	hasField :: scheme t -> f t

instance HasField(PairCtx f f2) f where
	hasField(PairCtx fn _) = fn
instance (HasField scheme f2) => HasField(PairCtx f scheme) f2 where
	hasField(PairCtx _ fn2) = hasField fn2