haskell - Using Functions of `a` on `newtype a` -



haskell - Using Functions of `a` on `newtype a` -

let's have next newtype:

newtype foo = foo integer deriving (eq, show)

is there concise way add together 2 foo's:

(foo 10) + (foo 5) == foo 15

or max:

max (foo 10) (foo 5) == foo 5?

i'm curious if it's possible utilize functions of a newtype a rather do:

addfoo :: foo -> foo -> foo addfoo (foo x) (foo y) = foo $ x + y

just haskell98 knows how derive eq , show instances you, can turn on generalizednewtypederiving extension ghc num , ord instances need:

prelude> :set -xgeneralizednewtypederiving prelude> newtype foo = foo integer deriving (eq, show, num, ord) prelude> (foo 10) + (foo 5) == foo 15 true prelude> max (foo 10) (foo 5) == foo 5 false

haskell newtype

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -