Skip to content
This repository was archived by the owner on May 25, 2022. It is now read-only.
This repository was archived by the owner on May 25, 2022. It is now read-only.

template-haskell 2.17 #48

@locallycompact

Description

@locallycompact

The new template haskell in ghc 9 offered these migration instructions for TyVarBndr

https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#template-haskell-217

I've naively attempted to resolve this by setting TyVarBndrSpec here

locallycompact@73cbba0

But I get one type error.

composite-base                > /home/lc/Source/github.com/composite/composite-base/src/Composite/TH.hs:163:59: error:
composite-base                >     • Couldn't match type ‘()’ with ‘Specificity’
composite-base                >       Expected: Control.Lens.Getter.Getting
composite-base                >                   (base-4.15.0.0:Data.Semigroup.Internal.Endo
composite-base                >                      [(Name, [TyVarBndrSpec], Type)])
composite-base                >                   [Dec]
composite-base                >                   (Name, [TyVarBndrSpec], Type)
composite-base                >         Actual: ((Name, [Language.Haskell.TH.Lib.Internal.TyVarBndrUnit],
composite-base                >                   Type)
composite-base                >                  -> Data.Functor.Const.Const
composite-base                >                       (base-4.15.0.0:Data.Semigroup.Internal.Endo
composite-base                >                          [(Name, [TyVarBndrSpec], Type)])
composite-base                >                       (Name, [Language.Haskell.TH.Lib.Internal.TyVarBndrUnit], Type))
composite-base                >                 -> [Dec]
composite-base                >                 -> Data.Functor.Const.Const
composite-base                >                      (base-4.15.0.0:Data.Semigroup.Internal.Endo
composite-base                >                         [(Name, [TyVarBndrSpec], Type)])
composite-base                >                      [Dec]
composite-base                >     • In the first argument of ‘toListOf’, namely ‘(each . _TySynD)’
composite-base                >       In the second argument of ‘(.)’, namely ‘toListOf (each . _TySynD)’
composite-base                >       In the second argument of ‘(.)’, namely
composite-base                >         ‘map fieldDecMay . toListOf (each . _TySynD)’
composite-base                >     |
composite-base                > 163 |   let fieldDecs = catMaybes . map fieldDecMay . toListOf (each . _TySynD) $ decs

I can't really see what's going on here, but _TySynD doesn't look like something I want to change, but if I change these all to TyVarBndrUnit, then I get an error trying to use ForallT, which also doesn't look like like something I want to change.

composite-base                > /home/lc/Source/github.com/composite/composite-base/src/Composite/TH.hs:220:30: error:
composite-base                >     • Couldn't match type ‘()’ with ‘Specificity’
composite-base                >       Expected: [TyVarBndr Specificity]
composite-base                >         Actual: [TyVarBndr ()]
composite-base                >     • In the first argument of ‘ForallT’, namely ‘lensBinders’
composite-base                >       In the second argument of ‘SigD’, namely
composite-base                >         ‘(ForallT lensBinders lensContext lensType)’
composite-base                >       In the expression:
composite-base                >         SigD lensName (ForallT lensBinders lensContext lensType)
composite-base                >     |
composite-base                > 220 |     , SigD lensName (ForallT lensBinders lensContext lensType)
composite-base                >     |                              ^^^^^^^^^^^
composite-base                >
composite-base                > /home/lc/Source/github.com/composite/composite-base/src/Composite/TH.hs:240:31: error:
composite-base                >     • Couldn't match type ‘()’ with ‘Specificity’
composite-base                >       Expected: [TyVarBndr Specificity]
composite-base                >         Actual: [TyVarBndr ()]
composite-base                >     • In the first argument of ‘ForallT’, namely ‘prismBinders’
composite-base                >       In the second argument of ‘SigD’, namely
composite-base                >         ‘(ForallT prismBinders prismContext prismType)’
composite-base                >       In the expression:
composite-base                >         SigD prismName (ForallT prismBinders prismContext prismType)
composite-base                >     |
composite-base                > 240 |     , SigD prismName (ForallT prismBinders prismContext prismType)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions