diff --git a/src/Libraries/Base1/CShow.bs b/src/Libraries/Base1/CShow.bs index 2017ecb42..f0e8a59e9 100644 --- a/src/Libraries/Base1/CShow.bs +++ b/src/Libraries/Base1/CShow.bs @@ -73,6 +73,9 @@ instance (CShow a) => CShow' (Conc a) where cshow' (Conc x) = cshow x cshowP' (Conc x) = cshowP x +instance CShow' (ConcPoly a) where + cshow' (ConcPoly _) = $format "" + -- Note that below there are more specific instances for -- CShow' (Meta (MetaConsNamed ...)) and CShow' (Meta (MetaConsAnon ...)) instance (CShow' a) => CShow' (Meta m a) where diff --git a/testsuite/bsc.lib/CShow/TestCShow.bs b/testsuite/bsc.lib/CShow/TestCShow.bs index 56d8340f6..ed5785cc7 100644 --- a/testsuite/bsc.lib/CShow/TestCShow.bs +++ b/testsuite/bsc.lib/CShow/TestCShow.bs @@ -19,6 +19,10 @@ struct Bar = data Baz a = Baz a a deriving (FShow) +struct Qux = + x :: a -> a -- Higher rank + y :: Int 8 + sysTestCShow :: Module Empty sysTestCShow = module rules @@ -35,4 +39,5 @@ sysTestCShow = module $display (cshow ((vec (Bar {x=42; foo=C}) (Bar {x=3; foo=B 2323})) :: Vector 2 Bar)) $display (cshow ((Bar {x=42; foo=C}) :> (Bar {x=3; foo=B 2323}) :> ListN.nil)) $display (cshow ("x", ((Left 123) :: Either (UInt 8) Bar, False))) + $display (cshow $ Qux {x = id; y = 42;}) $finish diff --git a/testsuite/bsc.lib/CShow/sysTestCShow.out.expected b/testsuite/bsc.lib/CShow/sysTestCShow.out.expected index 2b57e7626..cf9ee03e5 100644 --- a/testsuite/bsc.lib/CShow/sysTestCShow.out.expected +++ b/testsuite/bsc.lib/CShow/sysTestCShow.out.expected @@ -10,3 +10,4 @@ Baz C (A 12 True (Bar {foo=D {a=0x22; b=C}; x= 42})) [Bar {foo=C; x= 42}, Bar {foo=B 2323; x= 3}] [Bar {foo=C; x= 42}, Bar {foo=B 2323; x= 3}] ("x", Left 123, False) +Qux {x=; y= 42}