Comments (5)
Hmm, I haven't really thought so much about import/export rules. It is to do with the way import works, which I know to be broken in some (easily fixable) ways.
I'll have a think about how to do it properly, though I probably can't do it very quickly. The behaviour you're seeing is definitely wrong.
from idris-dev.
Maybe it is not a problem if names which are defined in modules which
are imported by imported modules are resolved and can be addressed
without full qualification.
But I think in this case the programmer needs some form of control.
Maybe a "-noautoexport" or a user settable "nameresolutiondepth" ?
Edwin Brady [email protected] wrote:
Hmm, I haven't really thought so much about import/export rules. It is
to do with the way import works, which I know to be broken in some
(easily fixable) ways.I'll have a think about how to do it properly, though I probably can't
do it very quickly. The behaviour you're seeing is definitely wrong.—
Reply to this email directly or view it on GitHub.
[Xa8jSg8hAG_XCIX7_YoUpRXz5UHBHTwiX9khz7iuyV7CyTEXymXfI42r0PdrtUxJ.gif]
from idris-dev.
The default is now that imported modules are not automatically reexported, and you need to say "import public A" if that's the behaviour you want (which is exactly the old behaviour). This might break a few things, but I think the new way is better, and what you were looking for.
Sorry to take 2 years over this. At least it's evidence I get back to things eventually :).
from idris-dev.
This is wonderful!
from idris-dev.
Edwin Brady [email protected] wrote:
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Sun, 14 Dec 2014 16:03:59 +0100
Message-ID: [email protected]
The default is now that imported modules are not automatically
reexported, and you need to say "import public A" if that's the
behaviour you want (which is exactly the old behaviour). This might
break a few things, but I think the new way is better, and what you
were looking for.
Thanks a lot Edwin, this is great news ! Best, Nicola
Sorry to take 2 years over this. At least it's evidence I get back to
things eventually :).—
Reply to this email directly or view it on GitHub.*Fcc: +outbox
Subject: Re: [Idris-dev] Idris export rules inflate namespaces, Haskell rules do no. Why ? (#111)
In-reply-to: idris-lang/Idris-dev/issues/111/[email protected]
References: idris-lang/Idris-dev/issues/[email protected] idris-lang/Idris-dev/issues/111/[email protected]
Comments: In-reply-to Edwin Brady [email protected]
message dated "Sat, 13 Dec 2014 09:47:35 -0800."X-Mailer: MH-E 8.3; nmh 1.5; GNU Emacs 23.4.1
from idris-dev.
Related Issues (20)
- Types appear to match but fail HOT 4
- Totality checker thinks simple function is total when it's not HOT 1
- Broken sections of custom operators starting with pipe '|', "expecting function name"
- in interfaces.rst, replace "brackets" by "parentheses" HOT 3
- Totality check fails on simple structural recursion when it is not tail recusive
- Dependent constructor reproted as not strictly positive when in mutual block HOT 1
- Installation from hackage fails with ghc 8.10.2 in cabal configuration step HOT 1
- Is there a color scheme for IntelliJ?
- Idris not located in terminal.
- Please update dependency upperbounds HOT 2
- `pkg010` test output depends on version of optparse-applicative library used
- Lambda in place of Type HOT 1
- Data.Primitives.Views.divides behaves odd with negative dividend
- idris-1.3.3 fails with haskeline-0.8 HOT 2
- Type checker confused by overloaded `fst` (or just a strange error message)
- Test ffi008 fails with "multiple definition of `mystruct'"
- Cannot define recursive bound on associated type of an interface
- Incorrect behaviour when resolving associated type of an interface
- List available operators
- Dead download link for idris-1.3.3-win64.exe HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from idris-dev.