{-# 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