Is there a way to derive Num class functions in own data type in Haskell? -
let's have type declaration:
data mytype = n double | c char | placeholder i want able treat mytype double whenever it's possible, num, real, fractional functions resulting in n (normal result) arguments wrapped in n constructor, , placeholder other arguments
> (n 5.0) + (n 6.0) n 11.0 > (n 5.0) + (c 'a') placeholder is there way other defining class instance of classes in manner similar to:
instance num mytype (+) (n d1) (n d2) = n (d1+d2) (+) _ _ = placeholder ... (which seems counter-productive)?
there no generic deriving available in standard haskell: currently, deriving available defined compiler specific prelude typeclasses: read, show, eq, ord, enum, , bounded.
the glasgow haskell compiler (ghc) apparently has extensions support generic deriving. however, don't know if save work try , use them: how many typeclasses need derive num instance from? and, sure can define automatic scheme deriving num want?
as noted in comments, need describe num instance in case. , describing , debugging general scheme more work describing particular one.
Comments
Post a Comment