Send Beginners mailing list submissions to
        beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        beginners-requ...@haskell.org

You can reach the person managing the list at
        beginners-ow...@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1. Re:  Re: Enforcing Monad Laws (Daniel Fischer)
   2. Re:  'cabal install hdirect' can't find hdirect (Larry Evans)
   3. Re:  Re: Enforcing Monad Laws (Jorden M)
   4. Re:  'cabal install hdirect' can't find hdirect (Stephen Tetley)


----------------------------------------------------------------------

Message: 1
Date: Sun, 4 Jul 2010 17:16:21 +0200
From: Daniel Fischer <daniel.is.fisc...@web.de>
Subject: Re: [Haskell-beginners] Re: Enforcing Monad Laws
To: beginners@haskell.org
Cc: Heinrich Apfelmus <apfel...@quantentunnel.de>
Message-ID: <201007041716.21743.daniel.is.fisc...@web.de>
Content-Type: text/plain;  charset="iso-8859-1"

On Sunday 04 July 2010 16:05:48, Jorden M wrote:
> > Now that I've had a really short look at Axioms, I think the Haskell
> > equivalent would be QuickCheck properties. After all, Axioms are not
> > enforced by the compiler, their only effect is documentation. Granted,
> > they
>
> Really? I thought they were.
>

I think that's not even possible in general.
Generally, you can't decide the equality of functions [okay, we're dealing 
with finite domains in a computer, so in principle one could check all 
possible inputs, but even for a small type like uint64_t, that's 
impractical].

> > are part of the source code, but frankly, I don't see how this has
> > more effect than stating invariants as QuickCheck properties or
> > writing them down in a comment.
>
> Would it make sense to try to formalize things like the monad laws
> using QuickCheck?.

To a certain extent. You'd have a good chance to catch gross violations of 
the monad laws with QuickCheck. But for subtle violations, the odds are 
minuscule.



------------------------------

Message: 2
Date: Sun, 04 Jul 2010 10:33:21 -0500
From: Larry Evans <cppljev...@suddenlink.net>
Subject: Re: [Haskell-beginners] 'cabal install hdirect' can't find
        hdirect
To: beginners@haskell.org
Message-ID: <4c30a9c1.5080...@suddenlink.net>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

On 07/04/10 10:06, Larry Evans wrote:
> On 07/04/10 07:28, Daniel Fischer wrote:
>> On Sunday 04 July 2010 13:45:01 you wrote:
>>  
>>> src/Lex.lhs:330:8:
>>>     Illegal signature in pattern: Int
>>>         Use -XPatternSignatures to permit it
>>> cabal: Error: some packages failed to install:
>>> hdirect-0.21.0 failed during the building phase. The exception was:
>>> exit: ExitFailure 1
>>> ~/download/haskell/libs $ which happy
>>> /home/evansl/.cabal/bin/happy
>>> ~/download/haskell/libs $
>>>
>>> Any ideas about how to solve this problem?
>>>     
>>
>> Sure. First, tell the maintainer, he might want to fix it for all.
>>   
> Done.
>> Then, the quick fix for you,
>> * unpack the .tar.gz
>> * change the version in the .cabal file (my preferred method is 
>> appending a ".1" to the version number). You need that in case you 
>> want to build some library which depends on hdirect, so that 
>> cabal-install picks your bumped newer version rather than the newest 
>> version on hackage.
>> * make it compile, e.g. by adding a field
>> Extensions:     PatternSignatures
>> to the cabal file, or by putting a {-# LANGUAGE PatternSignatures #-}
>> pragma to the offending file.
>> Then run cabal install in the unpacked and modified directory.
>> Several iterations of edit file; cabal install may be necessary.
>>
>>   
> Downloaded:
>
> http://hackage.haskell.org/packages/archive/hdirect/0.21.0/hdirect-0.21.0.tar.gz
>  
>
>
> then unzipped and untarred it then edited hdirect.cabal by adding:
>
>      Extensions:     PatternSignatures
>
> Below the line:
>
> library
>
> However, still got:
>
> src/Desugar.lhs:2053:1:
>    Warning: Pattern match(es) are non-exhaustive
>             In a case alternative:
>                 Patterns not matched:
>                     (_, [])
>                     (_, IDL.IncludeEnd : _)
>                     (_, (IDL.IncludeStart _) : _)
>                     (_, (IDL.Pragma _) : _)
>                     ...
> [60 of 65] Compiling IDLToken         ( src/IDLToken.lhs, 
> dist/build/hdirect/hdirect-tmp/IDLToken.o )
> [61 of 65] Compiling LexM             ( src/LexM.lhs, 
> dist/build/hdirect/hdirect-tmp/LexM.o )
> [62 of 65] Compiling Lex              ( src/Lex.lhs, 
> dist/build/hdirect/hdirect-tmp/Lex.o )
>
> src/Lex.lhs:330:8:
>    Illegal signature in pattern: Int
>        Use -XPatternSignatures to permit it
> cabal: Error: some packages failed to install:
>
> Any further help is appreciated.
[snip]
However, the 2nd alternative solution:

{-# LANGUAGE PatternSignatures #-}

did work.  Thanks.  However, during the compilations, there
were many warnings about pattern matching.  Also, I plan to use
this with hugs.  I'm not sure which haskell compiler was used.
Does that matter?  I'm actually trying to use:

http://www.cas.mcmaster.ca/~kahl/FP/2003/Interpreter.lhs

with hugs.

TIA.

-Larry





------------------------------

Message: 3
Date: Sun, 4 Jul 2010 11:41:32 -0400
From: Jorden M <jrm8...@gmail.com>
Subject: Re: [Haskell-beginners] Re: Enforcing Monad Laws
To: Daniel Fischer <daniel.is.fisc...@web.de>
Cc: Heinrich Apfelmus <apfel...@quantentunnel.de>,
        beginners@haskell.org
Message-ID:
        <aanlktin6lzonu4fte-uszaecg-cpcilk1odq4aezj...@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

On Sun, Jul 4, 2010 at 11:16 AM, Daniel Fischer
<daniel.is.fisc...@web.de> wrote:
> On Sunday 04 July 2010 16:05:48, Jorden M wrote:
>> > Now that I've had a really short look at Axioms, I think the Haskell
>> > equivalent would be QuickCheck properties. After all, Axioms are not
>> > enforced by the compiler, their only effect is documentation. Granted,
>> > they
>>
>> Really? I thought they were.
>>
>
> I think that's not even possible in general.

It would equate to solving the Halting Problem, I suppose. The point
of axioms for compiler use must then have been to say, `All right,
assume this is true and make optimizations if possible.'

A bit fast and loose in the presence of careless programmers, no? At
least calling them axioms makes more sense.

> Generally, you can't decide the equality of functions [okay, we're dealing
> with finite domains in a computer, so in principle one could check all
> possible inputs, but even for a small type like uint64_t, that's
> impractical].
>
>> > are part of the source code, but frankly, I don't see how this has
>> > more effect than stating invariants as QuickCheck properties or
>> > writing them down in a comment.
>>
>> Would it make sense to try to formalize things like the monad laws
>> using QuickCheck?.
>
> To a certain extent. You'd have a good chance to catch gross violations of
> the monad laws with QuickCheck. But for subtle violations, the odds are
> minuscule.
>

I wonder if the effort to do so would be useful.


------------------------------

Message: 4
Date: Sun, 4 Jul 2010 16:50:33 +0100
From: Stephen Tetley <stephen.tet...@gmail.com>
Subject: Re: [Haskell-beginners] 'cabal install hdirect' can't find
        hdirect
To: Larry Evans <cppljev...@suddenlink.net>
Cc: beginners@haskell.org
Message-ID:
        <aanlktilnfcwnwnrlmr2iqbop_kzjtctvysj2eckxy...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

You don't need HDirect for this.

I've attached an early revision of Wolfram Kahl's code that I download
years ago - this is a plain Haskell version rather than a literate
file you should find it easier to use.

The file itself seems to have disappeared from the web, though maybe
it is findable through the Wayback machine.

On 4 July 2010 16:33, Larry Evans <cppljev...@suddenlink.net> wrote:

> {-# LANGUAGE PatternSignatures #-}
>
> did work.  Thanks.  However, during the compilations, there
> were many warnings about pattern matching.  Also, I plan to use
> this with hugs.  I'm not sure which haskell compiler was used.
> Does that matter?  I'm actually trying to use:
>
> http://www.cas.mcmaster.ca/~kahl/FP/2003/Interpreter.lhs
>
> with hugs.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Interpreter.hs
Type: application/octet-stream
Size: 16539 bytes
Desc: not available
Url : 
http://www.haskell.org/pipermail/beginners/attachments/20100704/257418bb/Interpreter.obj

------------------------------

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners


End of Beginners Digest, Vol 25, Issue 12
*****************************************

Reply via email to