Existe um Functor que não pode ser um Candidato cumpridor da lei?

A pergunta recente perguntou geralmente sobre os limites entre várias classes Haskell. eu vim comHandler como um exemplo de um válidoFunctor com nenhumsensato instancia deApply**, Onde

class Functor f => Apply f where
  (<.>) :: f (a -> b) -> f a -> f b
  -- optional bits omitted.

No entanto, ainda não consegui encontrar um exemplo de um válidoFunctor que não pode ser feitoválido caso (sem sentido) deApply. O fato de queApply tem tinha (ver atualização) mas uma única lei,

(.) <
(.) <$> u <.> v <.> w = u <.> (v <.> w)
gt; u <.> v <.> w = u <.> (v <.> w)

parece tornar isso bastante complicado.

porco (Conor McBride) anteriormentedeu um exemplo de umFunctor aquilo não éApplicative, mas ele contou compure para fazer isso, e isso não está disponível noApply.

** Então, mais tarde, percebi que na verdade poderia haver um sentido (embora um pouco estranho)Apply instância paraHandler, que conceitualmente coleta exceções simultâneas.

Atualizar

Edward Kmett agoraaceitaram duas leis adicionais que propus paraApply (para validar as otimizações que fiz noApply (Coyoneda f) instância):

x <.> (f <
x <.> (f <$> y) = (. f) <$> x <.> y
f <$> (x <.> y) = (f .) <$> x <.> y
gt; y) = (. f) <
x <.> (f <$> y) = (. f) <$> x <.> y
f <$> (x <.> y) = (f .) <$> x <.> y
gt; x <.> y f <
x <.> (f <$> y) = (. f) <$> x <.> y
f <$> (x <.> y) = (f .) <$> x <.> y
gt; (x <.> y) = (f .) <
x <.> (f <$> y) = (. f) <$> x <.> y
f <$> (x <.> y) = (f .) <$> x <.> y
gt; x <.> y

Seria interessante ver se essas adições alteram a resposta a essa pergunta.

questionAnswers(3)

yourAnswerToTheQuestion