Open
Description
Sometimes when I'm iterating I make stupid mistakes like this:
tooFew :: Integer -> Integer -> Integer
tooFew = (a, b, c, d, e) => a + b * c + d * e
tooMany :: Integer -> Integer -> Integer
tooMany = (a) => a * a
main = () => {
tooFew(1,2,3)
tooMany(1,2)
}
This results in these errors:
[error]: Type error
╭──▶ ~/madness/stranger/src/Temp.mad@1:1-2:46
│
1 │ ╭┤ tooFew :: Integer -> Integer -> Integer
2 │ ├┤ tooFew = (a, b, c, d, e) => a + b * c + d * e
• │
• ╰╸ expected:
• Integer -> Integer -> Integer
•
• but found:
• Integer
• -> Integer
• -> (Integer -> Integer -> Integer -> Integer)
•
─────╯
[error]: Type error
╭──▶ ~/madness/stranger/src/Temp.mad@4:1-5:23
│
4 │ ╭┤ tooMany :: Integer -> Integer -> Integer
5 │ ├┤ tooMany = (a) => a * a
• │
• ╰╸ expected:
• Integer -> (Integer -> Integer)
•
• but found:
• Integer -> Integer
•
─────╯
[error]: Type error
╭──▶ ~/madness/stranger/src/Temp.mad@8:14-8:15
│
8 │ tooFew(1,2,3)
• ┬
• ╰╸ expected:
• Integer
•
• but found:
• a -> b
•
─────╯
Ideally if there were a hint to indicate that the listed number of parameters doesn't match the signature I'd have a better understanding of what these errors mean — I understand it now but when I made the mistake earlier I didn't understand what the types in parentheses indicated
Metadata
Metadata
Assignees
Labels
No labels