[Haskell-cafe] Class/Instance : what am I doing wrong in this example ?

david48 dav.vire+haskell at gmail.com
Thu Dec 20 10:47:52 EST 2007

I'm really inexperienced at this :

{-# OPTIONS_GHC -fglasgow-exts -funbox-strict-fields
-fallow-undecidable-instances -O2 #-}

class Gadget g where
  fInit  :: g -> a -> g

data FString = FString !Int !String deriving Show

instance Gadget FString where
  fInit (FString n _) s = FString n (take n s)


I get the error message :
     Couldn't match expected type `String' against inferred type `a'
      `a' is a rigid type variable bound by
    the type signature for `fInit' at Gadget.hs:4:17
    In the second argument of `FString', namely `s'
    In the expression: FString n s
    In the definition of `fInit': fInit (FString n _) s = FString n s

More information about the Haskell-Cafe mailing list