Skip to content

Drop support for pre-8.0 GHC #811

Closed
Closed
@treeowl

Description

@treeowl

It seems impossible (or extremely difficult) to offer Lift instances for GHC versions before 8.0. Old versions of template-haskell depended on containers, making it impossible to depend on them. There are newer versions of template-haskell that claim to build with the relevant GHC versions, but Cabal refuses, considering template-haskell "non-upgradable". That leaves us a few options:

  1. Leave well enough alone, allowing the instances to stay in th-lift-instances. This is blecherous, of course.
  2. Export the instances for GHC 8.0 and later, allowing th-lift-instances to cover earlier versions. Not exactly ideal.
  3. Drop support for GHC < 8.0. This would remove all the immediate problems except for people who care about earlier versions. Since DeriveLift also appeared in 8.0, most instances could be derived (the Seq instance wants a bit of special treatment).

Longer-term concerns about depending on template-haskell:

  1. template-haskell won't be able to depend directly on containers. I don't imagine this is a serious problem.
  2. template-haskell can't depend indirectly on containers either. This means that pretty can't depend on containers. It's managed this long without doing so, so I guess that's probably fine, but if it finds itself needing any containers-like structures, it'll have to reimplement them itself.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions