024: nodup0bx.hs で matchVarCon error: ([PWildcard],OtherExpression ...

↑up

調査ログ

2020-04-20 (Mon)

src/Pattern.hs の isVar で isVar (PWildcard:_,_) = True としてやれば いいかと思ったが、そういうわけではなさそう。

src/TrCore.hs の以下の部分は、パターンマッチ変換の結果生じる PWildcard ではなく、 ラムダ式の引数への対処かな。

    rmWild [] as         = reverse as
    rmWild (([Ty.PWildcard], e'):als') as =
      rmWild als' (([Ty.PVar "_"], e'):as)
    rmWild (alt:als') as = rmWild als' (alt:as)

ということは、(\_ -> hoge) には対応しても、(\_ _ -> hoge) など、2引数以上のラムダには対応していないはず(あとで確かめよう)

testcases/pwild2.hs が通るのは、なんか、DefaultAltClause で特殊対応しているようだ。

pwild.hs は、なんかべつのエラーを踏んでいる。

2020-05-15 (Fri)

035, 034 の対処によって、本件も解決、クローズ。