{-# LANGUAGE MultiParamTypeClasses #-} module Data.Diverse.AFunctor where import Data.Diverse.TypeLevel -- | Given a 'Data.Diverse.Case' that transforms each type in the -- typelist, convert a @f xs@ to @f (CasesResults c xs)@ class AFunctor f c xs where afmap :: c xs -> f xs -> f (CaseResults c xs)