merge issues with new field for FamEqn

Alan & Kim Zimmerman alan.zimm at gmail.com
Sat Nov 11 08:27:09 UTC 2017


Change the deriving to

deriving instance (DataIdLR pass pass, Data pats, Data rhs)

Unfortunately the LR stuff bleeds through at the moment.

Alan

On 10 November 2017 at 23:12, John Leo <leo at halfaya.org> wrote:

> Hi everyone,
>
> Today I'm trying to merge the latest HEAD into my work on the explicit
> forall proposal, and I'm running into a problem I'd like help with. The
> changes that are affecting me seem to come from the latest Trees that Grow
> checkins.
>
> I had added a field to FamEqn, namely feqn_bndrs:
>
> data FamEqn pass pats rhs
>   = FamEqn
>        { feqn_tycon  :: Located (IdP pass)
>        , feqn_bndrs  :: Maybe [LHsTyVarBndr pass]
>                         -- ^ Explicit user-provided binders
>        , feqn_pats   :: pats
>        , feqn_fixity :: LexicalFixity -- ^ Fixity used in the declaration
>        , feqn_rhs    :: rhs
>        }
>     -- ^
>     --  - 'ApiAnnotation.AnnKeywordId' : 'ApiAnnotation.AnnEqual',
>     --           'ApiAnnotation.AnnForall','ApiAnnotation.AnnDot'
>
>     -- For details on above see note [Api annotations] in ApiAnnotation
> deriving instance (DataId pass, Data pats, Data rhs)
>                 => Data (FamEqn pass pats rhs)
>
> When I try to compile now, I get the following errors that I cannot
> understand.  I assume I need to do something else, but I'm not sure what it
> is, so I'd appreciate any guidance.
>
> compiler/hsSyn/HsDecls.hs:1441:1: error:
>     • Could not deduce (Data (XValBinds pass pass),
>                         Data (XXValBindsLR pass pass))
>         arising from a use of ‘k’
>       from the context: (DataId pass, Data pats, Data rhs)
>         bound by the instance declaration
>         at compiler/hsSyn/HsDecls.hs:(1441,1)-(1442,46)
>     • In the first argument of ‘k’, namely ‘((z FamEqn `k` a1) `k` a2)’
>       In the first argument of ‘k’, namely
>         ‘(((z FamEqn `k` a1) `k` a2) `k` a3)’
>       In the first argument of ‘k’, namely
>         ‘((((z FamEqn `k` a1) `k` a2) `k` a3) `k` a4)’
>       When typechecking the code for ‘gfoldl’
>         in a derived instance for ‘Data (FamEqn pass pats rhs)’:
>         To see the code I am typechecking, use -ddump-deriv
>      |
> 1441 | deriving instance (DataId pass, Data pats, Data rhs)
>      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
>
> compiler/hsSyn/HsDecls.hs:1441:1: error:
>     • Could not deduce (Data (XValBinds pass pass),
>                         Data (XXValBindsLR pass pass))
>         arising from a use of ‘k’
>       from the context: (DataId pass, Data pats, Data rhs)
>         bound by the instance declaration
>         at compiler/hsSyn/HsDecls.hs:(1441,1)-(1442,46)
>     • In the first argument of ‘k’, namely ‘(k (k (z FamEqn)))’
>       In the first argument of ‘k’, namely ‘(k (k (k (z FamEqn))))’
>       In the first argument of ‘k’, namely ‘(k (k (k (k (z FamEqn)))))’
>       When typechecking the code for ‘gunfold’
>         in a derived instance for ‘Data (FamEqn pass pats rhs)’:
>         To see the code I am typechecking, use -ddump-deriv
>      |
> 1441 | deriving instance (DataId pass, Data pats, Data rhs)
>      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> John
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20171111/a84cf4a1/attachment.html>


More information about the ghc-devs mailing list