It worked. Initially I didn't understand what you mean but after some googleing I figured it out what I had to do so I did this
instance Show a ⇒ Show (Stack a) where show s = ... Now, thinking about this, it totally makes sense because Stack cannot be an instance of Show if the type a is not instance or Show. Thanks again! On Sun, Jul 31, 2011 at 12:26 PM, Mark Spezzano <mark.spezz...@chariot.net.au> wrote: > Hi, > > You might need a class constraint. > > instance (Show a) => Show (Stack a) where > > This basically lets Haskell know that if your "a" type is Showable then > "Stack a" is also Showable. > > Let me know if this works. > > Cheers, > > Mark Spezzano > > > On 31/07/2011, at 6:49 PM, Ovidiu Deac wrote: > >> For some reason ghc complains about not being able to call show on an >> Integer (?!?!?) >> >> Please enlighten me! >> >> ovidiu >> >> This is the hspec: >> it "shows one element" >> ( show (push 1 EmptyStack) ≡ "Stack(1)") >> >> ...this is the code: >> >> data Stack a = >> EmptyStack | >> StackEntry a (Stack a) >> deriving(Eq) >> >> >> instance Show (Stack a) where >> show s = >> "Stack(" ⊕ (showImpl s) ⊕ ")" >> where >> showImpl EmptyStack = "" >> showImpl (StackEntry x _) = show x >> >> ...and this is the error: >> >> src/Stack.hs:12:22: >> No instance for (Show a) >> arising from a use of `showImpl' >> In the first argument of `(++)', namely `(showImpl s)' >> In the second argument of `(++)', namely `(showImpl s) ++ ")"' >> In the expression: "Stack(" ++ (showImpl s) ++ ")" >> >> _______________________________________________ >> Beginners mailing list >> beginn...@haskell.org >> http://www.haskell.org/mailman/listinfo/beginners > > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe