Core Lint errors : in result of Static argument
Causes a Core Lint error:
{-# Language DeriveAnyClass #-}
{-# Language DeriveGeneric #-}
{-# Language DerivingVia #-}
{-# Language TypeFamilies #-}
{-# Options_GHC -O2 -fstatic-argument-transformation -dcore-lint -fobject-code #-}
import Data.Distributive
import Data.Functor.Rep
import GHC.Generics
data Moore a b = Moore b (a -> Moore a b)
deriving
stock Generic1
deriving (Functor, Applicative, Monad)
via Co (Moore a)
instance Representable (Moore a) where
type Rep (Moore a) = [a]
index = undefined
tabulate = undefined
instance Distributive (Moore a) where
distribute = distributeRep
Mismatch in type between binder and occurrence
Var: $cfmap_s71F
Binder type: forall a a b.
(a_a5LM -> b_a5LN)
-> Co (Moore a_a5LI) a_a5LM -> Moore a_a5LI b_a5LN
Occurrence type: forall a a b.
(a -> b) -> Co (Moore a) a -> Moore a b
Before subst: forall a a b.
(a -> b) -> Co (Moore a) a -> Moore a b
In the RHS of $cfmap_s71F :: forall a a b.
(a -> b) -> Co (Moore a) a -> Moore a b
Using the adjunctions package, using ghc 8.10.2.log