[Haskell-beginners] Incomplete patterns

Jona Ekenberg saikyun at gmail.com
Thu Jul 6 09:12:04 UTC 2017


Hello,

I am currently going through the CIS194 spring 13 course, since it has been
recommended by several haskellions. I find the exercises extremely
valuable, and the reading material is succinct (in a good way).

I just finished the exercises for lesson two, and while everything works, I
get this warning:
Lektion02.hs:(38,1)-(44,21): warning: [-Wincomplete-patterns] …
    Pattern match(es) are non-exhaustive
    In an equation for ‘insert’:
        Patterns not matched:
            (LogMessage _ _ _) (Node _ (LogMessage _ _ _) _)

I understand that there is a pattern I'm not covering, but I can't really
figure out which one. Here is my function:
insert :: LogMessage -> MessageTree -> MessageTree
insert (Unknown _) mt  = mt
insert m Leaf          = Node Leaf m Leaf
insert m@(LogMessage _ t _) (Node left value@(LogMessage _ t' _) right)
  | t <= t' = Node (insert m left) value right
  | t >  t' = Node left            value (insert m right)
insert m@(LogMessage _ _ _) (Node left (Unknown _) right)
  = Node left m right

(here's a pastebin with intact indentation: http://lpaste.net/356716)

I am not sure on how I should progress to find out which pattern I'm
missing.
Any help is appreciated.

Kind regards,
Jona
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20170706/7ef33e7c/attachment.html>


More information about the Beginners mailing list