Can I use the same name (name here) in different data types?
data Person
= Person
{
name :: String,
salary :: Int
}
deriving( Show )
data University
= University
{
-- nameu :: String, <--- this works fine
name :: String,
students :: [ Person ]
}
deriving( Show )
main = putStrLn $ show $ University {
name = "TAU",
students = [
Person { name = "Oren", salary = 740 },
Person { name = "Moish", salary = 920 },
Person { name = "Axel", salary = 612 }
]
}
When I try to do it, I get this error:
[1 of 1] Compiling Main ( Main.hs, Main.o )
Main.hs:13:8: error:
Multiple declarations of ‘name’
Declared at: Main.hs:4:8
Main.hs:13:8
|
13 | name :: String,
| ^^^^