From 69cc5ecb6b99f3148a518c39a0ecf136016b4bba Mon Sep 17 00:00:00 2001 From: milesfrain Date: Fri, 10 Jul 2020 13:54:23 -0700 Subject: [PATCH] Add derive via Generic example, and point to latest docs I often visit this page looking for a `genericShow` example. It was also frustrating to click on the `Data.Generic.Rep` and be taken to an older package version that's missing lots of nice documentation. So ensuring links now go to the latest version. (related to https://github.com/purescript/pursuit/issues/414) --- language/Type-Classes.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/language/Type-Classes.md b/language/Type-Classes.md index 39816cfe..a7d91b21 100644 --- a/language/Type-Classes.md +++ b/language/Type-Classes.md @@ -147,11 +147,22 @@ derive instance ordPerson :: Ord Person ``` Currently, the following type classes can be derived: -- [Data.Generic.Rep (class Generic)](https://pursuit.purescript.org/packages/purescript-generics-rep/6.0.0/docs/Data.Generic.Rep#t:Generic) -- [Data.Eq (class Eq)](https://pursuit.purescript.org/packages/purescript-prelude/4.1.0/docs/Data.Eq#t:Eq) -- [Data.Ord (class Ord)](https://pursuit.purescript.org/packages/purescript-prelude/4.1.0/docs/Data.Ord#t:Ord) -- [Data.Functor (class Functor)](https://pursuit.purescript.org/packages/purescript-prelude/4.1.0/docs/Data.Functor#t:Functor) -- [Data.Newtype (class Newtype)](https://pursuit.purescript.org/packages/purescript-newtype/3.0.0/docs/Data.Newtype#t:Newtype) +- [Data.Generic.Rep (class Generic)](https://pursuit.purescript.org/packages/purescript-generics-rep/docs/Data.Generic.Rep#t:Generic) +- [Data.Eq (class Eq)](https://pursuit.purescript.org/packages/purescript-prelude/docs/Data.Eq#t:Eq) +- [Data.Ord (class Ord)](https://pursuit.purescript.org/packages/purescript-prelude/docs/Data.Ord#t:Ord) +- [Data.Functor (class Functor)](https://pursuit.purescript.org/packages/purescript-prelude/docs/Data.Functor#t:Functor) +- [Data.Newtype (class Newtype)](https://pursuit.purescript.org/packages/purescript-newtype/docs/Data.Newtype#t:Newtype) + +Other type classes may be derived via `Generic`: +```purescript +import Data.Generic.Rep (class Generic) +import Data.Generic.Rep.Show (genericShow) + +derive instance genericPerson :: Generic Person _ + +instance showPerson :: Show Person where + show = genericShow +``` ## Compiler-Solvable Type Classes