# Pastebin dwAsXj9Z {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeOperators #-} module Language.Cimple.Annot ( AnnotF (..) ) where import Data.Fix (Fix, hoistFix) import Data.Functor.Classes (Eq1, Read1, Show1) import Data.Functor.Classes.Generic (FunctorClassesDefault (..)) import Data.Functor.Compose (Compose (..)) import GHC.Generics (Generic, Generic1) data AnnotF attr a = Annot { attr :: attr, unAnnot :: a } deriving (Functor, Generic, Generic1) deriving (Show1, Read1, Eq1) via FunctorClassesDefault (AnnotF attr)