@@ -38,11 +38,9 @@ occursHelp seen var =
3838 return False
3939
4040 Structure term ->
41− let
42− go = occursHelp (var:seen)
43− in
41+ let go = occursHelp (var:seen) in
4442 case term of
45− App1 _ args ->
43+ App1 _ _ args ->
4644 or <$> traverse go args
4745
4846 Fun1 a b ->
@@ -54,7 +52,13 @@ occursHelp seen var =
5452 Record1 fields ext ->
5553 or <$> traverse go (ext : Map.elems fields)
5654
57− Alias _ args _ ->
55+ Unit1 ->
56+ return False
57+
58+ Tuple1 a b cs ->
59+ or <$> traverse go (a:b:cs)
60+
61+ Alias _ _ args _ ->
5862 -- TODO is it okay to only check args?
5963 or <$> traverse (occursHelp (var:seen) . snd) args
6064