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:  "downcasting" (Jamie F Olson)
   2.  cabal install local troubles (osx) (Miro Karpis)
   3. Re:  cabal install local troubles (osx) (Emmanuel Touzery)
   4. Re:  cabal install local troubles (osx) (Miro Karpis)
   5. Re:  "downcasting" (Daniel Trstenjak)
   6. Re:  cabal install local troubles (osx) (Miro Karpis)


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

Message: 1
Date: Tue, 26 Mar 2013 22:49:11 +0000 (UTC)
From: Jamie F Olson <jamie.f.ol...@gmail.com>
Subject: Re: [Haskell-beginners] "downcasting"
To: beginners@haskell.org
Message-ID: <loom.20130326t234649-...@post.gmane.org>
Content-Type: text/plain; charset=utf-8

Andres L?h <andres <at> well-typed.com> writes:

> 
> Hi Emmanuel.
> 
> It's somewhat confusing that in Haskell, data constructors and
> datatypes can have the same name. They're nevertheless different
> beasts. A data constructor is a way to construct values of a datatype,
> or to destruct them via pattern matching. Such constructors themselves
> are *not* types.
> 
> The definition of JSValue looks as follows:
> 
> > data JSValue
> >     = JSNull
> >     | JSBool     !Bool
> >     | JSRational Bool{-as Float?-} !Rational
> >     | JSString   JSString
> >     | JSArray    [JSValue]
> >     | JSObject   (JSObject JSValue)
> >     deriving (Show, Read, Eq, Ord, Typeable)
> 
> So there are six different ways to construct a JSValue, the last one
> is the JSObject constructor. It contains one item which is of *type*
> JSObject JSValue. This time, JSObject refers to a datatype, also
> defined in the library:
> 
> > newtype JSObject e = JSONObject { fromJSObject :: [(String, e)] }
> >     deriving (Eq, Ord, Show, Read, Typeable )
> 
> Now to your functions: if you write
> 
> > getObject :: JSValue -> JSObject JSValue
> > getObject x@(JSObject _) = x
> 
> or
> 
> > getObject :: JSValue -> JSObject JSValue
> > getObject (JSObject x) = JSObject x
> 
> you are writing essentially the identity function, but trying to
> assign a more specific type to the value. This doesn't quite work in
> Haskell. There's no subtyping between different datatypes.
> 
> Instead, what you should do is perform the pattern match once and
> extract its contents:
> 
> > getObject :: JSValue -> JSObject JSValue
> > getObject (JSObject x) = x
> 
> Now you have the stuff that was "inside" the constructor, and isolated
> the point of failure.
> 
> Cheers,
>   Andres
> 

I'm sorry, but I copied exact code and I'm still getting an error:

$:l tst.hs 
[1 of 1] Compiling Main             ( tst.hs, interpreted )
Ok, modules loaded: Main.
$let a = toJSObject [("A","a")]
$a
JSONObject {fromJSObject = [("A","a")]}
$encode a
"{\"A\":\"a\"}"
$getJSObj a

<interactive>:428:10:
    Couldn't match expected type `JSValue'
                with actual type `JSObject [Char]'
    In the first argument of `getJSObj', namely `a'
    In the expression: getJSObj a
    In an equation for `it': it = getJSObj a
$








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

Message: 2
Date: Wed, 27 Mar 2013 07:16:53 +0100
From: Miro Karpis <miroslav.kar...@gmail.com>
Subject: [Haskell-beginners] cabal install local troubles (osx)
To: Beginners@haskell.org
Message-ID:
        <CAJnnbxFf4bdDX=eeorfpfs9tkw4dlufyrenn_-sv-nzyrok...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

please, can you help me with following. I have installed haskell on mac
from the package. When I check cabal -V I can see 1.14.0
That is because the cabal is loading from /Library/Haskell/bin.

After that I run 'cabal install cabal-install', I get following output:

Installing executable(s) in
/Users/miro/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin
Updating documentation index /Users/miro/Library/Haskell/doc/index.html

So the new version of cabal is installed in another place. When I install
new package via cabal, it uses the 1.14.0 version. I have tried to copy the
new 1.16.0.2 version to bin, but that just didn't help because the new
packages have been installed somewhere else.

Please what is the proper way to fix this?

many thanks,
miro
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20130327/20663285/attachment-0001.htm>

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

Message: 3
Date: Wed, 27 Mar 2013 07:44:12 +0100
From: Emmanuel Touzery <etouz...@gmail.com>
Subject: Re: [Haskell-beginners] cabal install local troubles (osx)
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Message-ID:
        <CAC42Re=3gU=2SNZjPevQ1GOYzoFRv=cpwn5ys2byyu4qvql...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Hello,

 On linux and windows I add this folder to the path and then it works:
$HOME/.cabal/bin

emmanuel


On Wed, Mar 27, 2013 at 7:16 AM, Miro Karpis <miroslav.kar...@gmail.com>wrote:

> please, can you help me with following. I have installed haskell on mac
> from the package. When I check cabal -V I can see 1.14.0
> That is because the cabal is loading from /Library/Haskell/bin.
>
> After that I run 'cabal install cabal-install', I get following output:
>
> Installing executable(s) in
> /Users/miro/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin
> Updating documentation index /Users/miro/Library/Haskell/doc/index.html
>
> So the new version of cabal is installed in another place. When I install
> new package via cabal, it uses the 1.14.0 version. I have tried to copy the
> new 1.16.0.2 version to bin, but that just didn't help because the new
> packages have been installed somewhere else.
>
> Please what is the proper way to fix this?
>
> many thanks,
> miro
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20130327/61bfb3e6/attachment-0001.htm>

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

Message: 4
Date: Wed, 27 Mar 2013 07:49:17 +0100
From: Miro Karpis <miroslav.kar...@gmail.com>
Subject: Re: [Haskell-beginners] cabal install local troubles (osx)
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Message-ID:
        <CAJnnbxG+jU5-8rYn82=A6wzfvLhQvyyKU=g3K+sj6CE=xi_...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

many thanks, but this is my output:

mac-2:~ miro$ cd $HOME/.cabal/bin
-bash: cd: /Users/miro/.cabal/bin: No such file or directory
mac-2:~ miro$

cheers,
m.

On Wed, Mar 27, 2013 at 7:44 AM, Emmanuel Touzery <etouz...@gmail.com>wrote:

> Hello,
>
>  On linux and windows I add this folder to the path and then it works:
> $HOME/.cabal/bin
>
> emmanuel
>
>
> On Wed, Mar 27, 2013 at 7:16 AM, Miro Karpis <miroslav.kar...@gmail.com>wrote:
>
>> please, can you help me with following. I have installed haskell on mac
>> from the package. When I check cabal -V I can see 1.14.0
>> That is because the cabal is loading from /Library/Haskell/bin.
>>
>> After that I run 'cabal install cabal-install', I get following output:
>>
>> Installing executable(s) in
>> /Users/miro/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin
>> Updating documentation index /Users/miro/Library/Haskell/doc/index.html
>>
>> So the new version of cabal is installed in another place. When I install
>> new package via cabal, it uses the 1.14.0 version. I have tried to copy the
>> new 1.16.0.2 version to bin, but that just didn't help because the new
>> packages have been installed somewhere else.
>>
>> Please what is the proper way to fix this?
>>
>> many thanks,
>> miro
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners@haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>>
>>
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20130327/01a532fc/attachment-0001.htm>

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

Message: 5
Date: Wed, 27 Mar 2013 09:22:27 +0100
From: Daniel Trstenjak <daniel.trsten...@gmail.com>
Subject: Re: [Haskell-beginners] "downcasting"
To: beginners@haskell.org
Message-ID: <20130327082227.GA2370@machine>
Content-Type: text/plain; charset=us-ascii


Hi Jamie,

> I'm sorry, but I copied exact code and I'm still getting an error:
> 
> $:l tst.hs 
> [1 of 1] Compiling Main             ( tst.hs, interpreted )
> Ok, modules loaded: Main.
> $let a = toJSObject [("A","a")]
> $a
> JSONObject {fromJSObject = [("A","a")]}
> $encode a
> "{\"A\":\"a\"}"
> $getJSObj a
> 
> <interactive>:428:10:
>     Couldn't match expected type `JSValue'
>                 with actual type `JSObject [Char]'
>     In the first argument of `getJSObj', namely `a'
>     In the expression: getJSObj a
>     In an equation for `it': it = getJSObj a
> $

'getJSObj' seems to extract a JSObject from a JSValue, but
you are giving a JSObject to 'getJSObj'.

Try this:

getJSObj $ JSValue a


Greetings,
Daniel



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

Message: 6
Date: Wed, 27 Mar 2013 10:39:34 +0100
From: Miro Karpis <miroslav.kar...@gmail.com>
Subject: Re: [Haskell-beginners] cabal install local troubles (osx)
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Message-ID:
        <cajnnbxgf+qvvqv1gs8w8yhsepdo3aanonivdrneofpobttb...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

I did a bit more checking and I can see in  ~/.cabal only config.platform
and config files. No bin folder.

I just did a fresh haskell package install. After that I run:

mac-2:.cabal miro$ cabal -V
*cabal-install version 0.14.0*
using version 1.14.0 of the Cabal library
mac-2:.cabal miro$ cabal update
Downloading the latest package list from hackage.haskell.org
*Note: there is a new version of cabal-install available.*
To upgrade, run: cabal install cabal-install
mac-2:.cabal miro$ cabal install cabal-install
Resolving dependencies...
...
...
...
Installing executable(s) in
*/Users/miro/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin*
Updating documentation index /Users/miro/Library/Haskell/doc/index.html
mac-2:.cabal miro$ cabal -V
*cabal-install version 0.14.0*
*
*
*
*
mac-2:.cabal miro$ ls ~/.cabal
config config.platform


mac-2:bin miro$ cd /Library/Haskell/bin
mac-2:bin miro$ ls -l
total 5712
lrwxr-xr-x  1 miro  wheel       26 Mar 27 10:17 alex ->
../lib/alex-3.0.2/bin/alex
lrwxr-xr-x  1 miro  wheel       10 Mar 27 10:17 cabal -> cabal.wrap
lrwxr-xr-x  1 miro  wheel       37 Mar 27 10:17 *cabal.real ->
../lib/cabal-install-0.14.0/bin/cabal*
-rwxr-xr-x  1 root  admin     4328 Nov  5 03:44 cabal.wrap
lrwxr-xr-x  1 miro  wheel       30 Mar 27 10:17 happy ->
../lib/happy-1.18.10/bin/happy
-rwxr-xr-x  1 root  admin  1295976 Nov  5 03:44 patch-ghc-settings
-rwxr-xr-x  1 root  admin  1598500 Nov  5 03:44 uninstall-hs

so it seems that the cabal update  does not update the link in bin,...this
should be working, or? Do I need to always update the link after each new
version of cabal?


m.


On Wed, Mar 27, 2013 at 7:49 AM, Miro Karpis <miroslav.kar...@gmail.com>wrote:

> many thanks, but this is my output:
>
> mac-2:~ miro$ cd $HOME/.cabal/bin
> -bash: cd: /Users/miro/.cabal/bin: No such file or directory
> mac-2:~ miro$
>
> cheers,
> m.
>
> On Wed, Mar 27, 2013 at 7:44 AM, Emmanuel Touzery <etouz...@gmail.com>wrote:
>
>> Hello,
>>
>>  On linux and windows I add this folder to the path and then it works:
>> $HOME/.cabal/bin
>>
>> emmanuel
>>
>>
>> On Wed, Mar 27, 2013 at 7:16 AM, Miro Karpis 
>> <miroslav.kar...@gmail.com>wrote:
>>
>>> please, can you help me with following. I have installed haskell on mac
>>> from the package. When I check cabal -V I can see 1.14.0
>>> That is because the cabal is loading from /Library/Haskell/bin.
>>>
>>> After that I run 'cabal install cabal-install', I get following output:
>>>
>>> Installing executable(s) in
>>> /Users/miro/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin
>>> Updating documentation index /Users/miro/Library/Haskell/doc/index.html
>>>
>>> So the new version of cabal is installed in another place. When I
>>> install new package via cabal, it uses the 1.14.0 version. I have tried to
>>> copy the new 1.16.0.2 version to bin, but that just didn't help because the
>>> new packages have been installed somewhere else.
>>>
>>> Please what is the proper way to fix this?
>>>
>>> many thanks,
>>> miro
>>>
>>> _______________________________________________
>>> Beginners mailing list
>>> Beginners@haskell.org
>>> http://www.haskell.org/mailman/listinfo/beginners
>>>
>>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners@haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20130327/be566c20/attachment.htm>

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

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


End of Beginners Digest, Vol 57, Issue 37
*****************************************

Reply via email to