<div dir="ltr">Hi Mark,<br><br>Adding this instance lets your example work:<br><br>instance Show1 BankersDeque where showsPrec1 = showsPrec<br><br>Regards,<br>Adam<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 12, 2015 at 9:36 AM, Mark Laws <span dir="ltr"><<a href="mailto:mdl@60hz.org" target="_blank">mdl@60hz.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Mar 12, 2015 at 12:25 PM, adam vogt <<a href="mailto:vogt.adam@gmail.com">vogt.adam@gmail.com</a>> wrote:<br>
> This combination seems to work:<br>
><br>
> instance (Show a, Show1 d) => Show (d a) where<br>
>     showsPrec = showsPrec1<br>
><br>
> deriving instance (Show (d a), Show1 d)<br>
>   => Show (SimpleCatDeque d a)<br>
><br>
> But it needs overlapping instances. I don't see another way to express<br>
><br>
>  (Show (d a), Show (d (d a)), Show (d (d (d a))), ... )<br>
><br>
> in a way that ghc will lazily evaluate the ...<br>
<br>
</span>Hi Adam and David,<br>
<br>
Thanks for the tips.  This works, but there's another issue now:<br>
<br>
> :load SimpleCatenableDeque.hs BankersDeque.hs<br>
> import BankersDeque<br>
> cons 1 (cons 2 empty ++ (cons 3 (cons 7 (cons 123 empty)))) ++ (cons 4 (cons 5 (empty) ++ (cons 6 (cons (-1) (cons 99 empty) ++ (cons 72 empty))) ++ (cons 44 empty ++ (cons 7 (cons 8 (cons 9 (cons 10 (cons 11 empty))))))) ++ cons 9 (cons 10 (cons 123 (empty :: SimpleCatDeque BankersDeque Int) ++ (cons 83 empty))))<br>
<br>
<interactive>:28:1-315:<br>
    No instance for (Show1 BankersDeque) arising from a use of 'print'<br>
    In a stmt of an interactive GHCi command: print it<br>
<br>
What would the necessary instance look like for BankersDeque?<br>
<br>
Thanks,<br>
Mark<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
|v\ /\ |\ |< |_ /\ \^| //<br>
</div></div></blockquote></div><br></div>