[Haskell-cafe] Picking an architecture for a Haskell web app

Ian Lynagh igloo at earth.li
Thu May 10 14:55:11 EDT 2007


On Thu, May 10, 2007 at 06:13:16PM +0100, Neil Mitchell wrote:
> 
> >> Also remember that evaluating an expression in Haskell is _really_
> >> hard!
> >
> >Really? Looks pretty damn simple to me...
> 
> In that case I throw down the challenge of writing an interpetter that
> takes a Haskell syntax tree and evaluates it :)
> 
> What is the value of show [] ? Remember that show ([] :: String) /=
> show ([] :: [Bool), so I can't see how you can drop the types and keep
> the semantics.

show [] by itself can't be evaluated even with type inference, though. A
more convincing example, IMO, is something like

    class Foo a where
        foo :: a -> String

    instance Foo Bool where
        foo _ = "Bool"

    instance Foo Char where
        foo _ = "Char"

    x :: String
    x = foo (id $! (undefined :: Bool))

where to evaluate x you can't evaluate the argument to foo (in general
it might not terminate) in order to find out what type this instance of
foo needs to have..


Thanks
Ian



More information about the Haskell-Cafe mailing list