
6 Feb
2019
6 Feb
'19
9:25 a.m.
Hi, Am Mittwoch, den 06.02.2019, 15:39 +0200 schrieb Georgi Lyubenov:
Hi!
I would like to use `DerivingVia` to do something like this: ``` import Data.Semigroup
data Four = Four Bool (Maybe Int) Bool Bool deriving (Semigroup, Monoid) via (Any, Option (First Int), Any, Any) ```
you probably know that, but this works: newtype Four = Four (Bool, Maybe Int, Bool, Bool) deriving (Semigroup, Monoid) via (Any, Option (First Int), Any, Any) and is operationally equivalent to your data type. You can define a pattern synonym to even the the other syntax. Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/