data One a = One
deriving Functor
instance Distributive One where
distribute :: Functor f => f (One a) -> One (f a)
distribute _ = One
instance Representable One where
type Rep One = Void
index :: One a -> Void -> a
index One = absurd
tabulate :: (Void -> a) -> One a
tabulate _ = One
Write it as
data () a = One