{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DerivingStrategies #-}
-- {-# LANGUAGE DerivingVia #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE TypeFamilies #-}
module Loop where
import qualified Data.Vector.Unboxing as V
import GHC.Generics
-- Loop!
{-
newtype Bad = Bad Bad
deriving newtype V.Unboxable
-}
{-
data Bad2 = Bad2 Bad2
deriving Generic
deriving V.Unboxable via V.Generics Bad2
-}
{-
class SomeClass a where
type Foo a
-- foo :: a -> Foo a
newtype Bad = Bad Bad
deriving newtype SomeClass
newtype BadT = BadT (Int, BadT)
deriving newtype V.Unboxable
-}