Bir tür verildiğinde, Linear kitaplığından bir Additive
örneğini uygulamanın yalnızca bir açık yolu vardır. Uygun olarak, Additive
genel bir uygulamaya sahiptir, bu yüzden bunun için deriving
kullanabiliriz. Ne yazık ki, derive olmayan bir Applicative
Örneğin, varlığına bağlıdır, bu nedenle hala beyan etmek zorunda: Bir Uygulamalı örneğini bildirmek zorunda kalmadan, otomatik Katkı türetmek için herhangi bir yoluBir Uygulama örneği tanımlamaksızın, Haskell üzerinde jenerik olarak katkı nasıl elde edilir?
{-# LANGUAGE DeriveGeneric, DeriveFunctor #-}
import Linear
import GHC.Generics
import Control.Applicative
data Foo a = Foo a a a deriving (Show, Functor, Generic1)
instance Additive Foo
instance Applicative Foo where
pure x = Foo x x x
Foo f g h <*> Foo x y z = Foo (f x) (g y) (h z)
main = print $ Foo 1 2 3 ^+^ Foo 4 5 6
var mı?