Sorry, but this didn't work for me. First,

$ cabal -z install --lib string-conversions
cabal: unrecognized 'install' option `-z'

however, without -z it does run and performs an install as you indicate . . . but then the rest doesn't work, i.e., 

$ cabal repl -z
> :set -package string-conversions
<no location info>: error:
    Could not load module ‘Data.String.Conversions’
    It is a member of the hidden package ‘string-conversions-0.4.0.1’.
    Perhaps you need to add ‘string-conversions’ to the build-depends in your .cabal file.

However, this did work

$ stack install string-conversions
tf8-string       > using precompiled package
string-conversions> configure  
string-conversions> Configuring string-conversions-0.4.0.1...
string-conversions> build      
string-conversions> Preprocessing library for string-conversions-0.4.0.1..
string-conversions> Building library for string-conversions-0.4.0.1..
string-conversions> [1 of 2] Compiling Data.String.Conversions
...

then 

$ stack ghci --package string-conversions
...

Prelude> import Data.String.Conversions as CS

Prelude CS> :t cs
cs :: ConvertibleStrings a b => a -> b


But, now I am able to follow your cabal way and it does work.

So this is very confusing for a beginner. But happy ending this time. Any lessons I can learn from this? For example, why was this so difficult?


On Tue, Jun 29, 2021 at 6:44 PM Viktor Dukhovni <ietf-dane@dukhovni.org> wrote:
On Tue, Jun 29, 2021 at 05:39:42PM -0500, Galaxy Being wrote:

> My problem is I can import and expose Data.Time, but
> Data.String.Conversions will not import to my global REPL. Any tips on
> doing this project-based would be enlightening too.

One thing that works is:

    $ cabal -z install --lib string-conversions
    Resolving dependencies...
    ...
    In order, the following will be built (use -v for more details):
     - utf8-string-1.0.2 (lib) (requires build)
     - string-conversions-0.4.0.1 (lib) (requires download & build)
    Completed    utf8-string-1.0.2 (lib)
    ...
    Completed    string-conversions-0.4.0.1 (lib)

    $ cabal repl -z
    λ> :set -package string-conversions
    package flags have changed, resetting and loading new packages...
    λ> import Data.String.Conversions as CS
    λ> :t cs
    cs :: ConvertibleStrings a b => a -> b
    λ>

There are surely other ways, that you might prefer, but this should get
you started.

--
    Viktor.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


--

Lawrence Bottorff
Grand Marais, MN, USA
borgauf@gmail.com