haskell - Why can't I get overloaded strings? -


this code have in file temp.hs :

{-# language overloadedstrings #-}  module temp  import data.string  string1 = "darth vader" string2 = "obi-wan kenobi"   

the problem want overloaded strings. understand, overloaded strings polymorphic, belonging typeclass isstring. when load above file in ghc ,

:t string1,

i should

string1 :: data.string.isstring => a

but is:

string1 :: string

help!

this answer in based on user2407038's comment.
turns out adding {-# language nomonomorphismrestriciton #-} code solves problem. wouldn't recommend it. read monomorphism restriction.

but turns out, don't have it. ghc monomorphism thing , sets type of string1 string, because thought didn't want else. overloadedstrings extension still in effect! you'll notice if

string1 = "darth vader"::bytestring

ghc more happy make string1 variable bytestring.

one more thing noticed in haskell's monomorphism restriction wiki page, is:

the restriction turned on default in compiled modules, , turned off default @ ghci prompt (since ghc 7.8.1).


Comments

Popular posts from this blog

matlab - error with cyclic autocorrelation function -

django - (fields.E300) Field defines a relation with model 'AbstractEmailUser' which is either not installed, or is abstract -

c# - What is a good .Net RefEdit control to use with ExcelDna? -