问题
Probably it's elementary but I don't understand why the following function answers 1 for fnc Nat and also, for fnc Integer, which is not even included as a pattern.
fnc : Type -> Integer
fnc Bool = 1
fnc Nat = 2
回答1:
You can't pattern match on type and you shouldn't. When I compile your code I receive next error:
warning - Unreachable case: fnc Nat
This was already discussed earlier:
- Old discussion.
- Some similar question.
- Some similar issue on GitHub.
UPDATE:
Finally found more relevant question with answer:
Why is typecase a bad thing?
来源:https://stackoverflow.com/questions/45439486/pattern-matching-on-type-in-idris