homepage: ''
changelog-type: markdown
hash: 3b5b88bf763415bcd5060b24ab79fc30c7687bdc40924cca3426579e78ecab5e
test-bench-deps:
  base: -any
  driving-classes-plugin: -any
maintainer: lysxia@gmail.com
synopsis: Deriving without spelling out "deriving"
changelog: |
  # Revision history for driving-classes-plugin

  Latest version: https://gitlab.com/Lysxia/driving-classes-plugin/-/blob/main/CHANGELOG.md

  ## 0.1.0.0

  * Create driving-classes-plugin
basic-deps:
  ghc: -any
  base: ^>=4.15
  containers: -any
all-versions:
- 0.1.0.0
author: Li-yao Xia
latest: 0.1.0.0
description-type: markdown
description: |
  # Deriving without spelling out "deriving"

  This GHC plugin automatically adds deriving clauses to all data types in
  a module.

  ## Example

  The following module uses this plugin to derive `Eq`, `Ord`, `Show` for all
  types by default, excluding invalid instances with the `NoDriving` option.

  ```haskell
  {-# LANGUAGE DerivingStrategies #-}
  {-# OPTIONS_GHC -fplugin=Driving.Classes #-}

  module X where

  {-# ANN module (Driving :: Driving
    '[ Stock '(Eq, Ord, Show)
     , NoDriving '(Eq MyEndo, Ord MyEndo, Show MyEndo)
     ]) #-}

  data T = C1 | C2
  data U = D1 | D2
  data V = E1 | E2

  newtype MyEndo a = MyEndo (a -> a)
  ```
license-name: MIT

Update from Hackage at 2021-05-16T00:10:39Z
Update from Hackage at 2021-05-16T00:10:39Z
