Aşağıdaki kodu verilen:Aşırı yüklenen dizeleri yazarken boiler plakasını nasıl kaldırabilirim?
{-# LANGUAGE OverloadedStrings #-}
newtype Firstname = Firstname String deriving (Eq, Show)
instance IsString Firstname where fromString = Firstname
newtype Lastname = Lastname String deriving (Eq, Show)
instance IsString Lastname where fromString = Lastname
data Person = Person { firstname :: Firstname, lastname :: Lastname, age :: Int } deriving Show
Ben kesinlikle yazılan dizeleri oluşturarak etrafında klişe kaldırmak istiyorum. Bunu başarmak için Template Haskell'i (veya başka bir yolla) kullanmak mümkün mü? gibi
örn şey:
{-# LANGUAGE OverloadedStrings, TemplateHaskell #-}
$(strongString ''Firstname)
$(strongString ''Lastname)
data Person = Person { firstname :: Firstname, lastname :: Lastname, age :: Int } deriving Show