# 050: contextorder1b.hs [↑up](bunny_notes) - issued: 2020-04-28 - 分類: A サンプルコードが fail - status: Open ## 概要 [049](bissue049) の少し複雑なバージョン。 $$
{ data A = A1 | A2 | A3 data B = B1 | B2 class MyShow a where myshow :: a -> [Char] instance MyShow A where myshow A1 = "A1" myshow A2 = "A2" myshow A3 = "A3" instance MyShow B where myshow B1 = "B1" myshow B2 = "B2" data Pair a b = Pair a b instance (MyShow a, MyShow b) => MyShow (Pair a b) where myshow (Pair x y) = "Pair " ++ myshow x ++ " " ++ myshow y main = putStrLn $ myshow (Pair A1 B2) $$} ## 調査ログ ## 2020-12-17 bunny 0.9.0 で試してみる。testrun の結果: $${ $ bunny testrun contextorder1b.hs /home/unno/bunny/0.9.0/bin/bunnyc -d ./jout/contextorder1b --xno-implicit-prelude /home/unno/bunny/0.9.0/lib/Prelude.hs /home/unno/bunny/0.9.0/bin/bunnyc -d ./jout/contextorder1b --xlibrary-path /home/unno/bunny/0.9.0/lib contextorder1b.hs Pair A1 B2 $$} これは runhaskell での結果と同じで期待通り。 ## 2021-10-24 全件確認の一環: $${ $ cat contextorder1b.hs data A = A1 | A2 | A3 data B = B1 | B2 class MyShow a where myshow :: a -> [Char] instance MyShow A where myshow A1 = "A1" myshow A2 = "A2" myshow A3 = "A3" instance MyShow B where myshow B1 = "B1" myshow B2 = "B2" data Pair a b = Pair a b instance (MyShow a, MyShow b) => MyShow (Pair a b) where myshow (Pair x y) = "Pair " ++ myshow x ++ " " ++ myshow y main = putStrLn $ myshow (Pair A1 B2) unno@unno-FMVD70GN7G ~/work/bissues/050 $ runhaskell contextorder1b.hs Pair A1 B2 unno@unno-FMVD70GN7G ~/work/bissues/050 $ ~/prj/bunny/compiler/bin/bunny testrun contextorder1b.hs /home/unno/prj/bunny/compiler/bin/bunnyc -d ./jout/contextorder1b --xno-implicit-prelude /home/unno/prj/bunny/compiler/bin/../lib/Prelude.hs /home/unno/prj/bunny/compiler/bin/bunnyc -d ./jout/contextorder1b --xlibrary-path /home/unno/prj/bunny/compiler/bin/../lib contextorder1b.hs Pair A1 B2 $$}