Why wouldn't GHC derive Applicative for KO ?
#!/usr/bin/env stack
-- stack --resolver lts-17.10 script
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
newtype KO a = KO a deriving (Functor, Applicative) -- doesn't derive Applicative
newtype OK f a = OK (f a) deriving (Functor, Applicative) -- that's ok
main :: IO ()
main = print "hello"
• Can't make a derived instance of ‘Applicative KO’ (even with cunning GeneralizedNewtypeDeriving): cannot eta-reduce the representation type enough • In the newtype declaration for ‘KO’typecheck