Comments (6)
I believe Dhall's parser used to support this in older versions but doesn't any longer once I standardized the grammar. Like you noticed, List/map
is a valid parse for List
applied to the file /map
and that parse takes priority over parsing it as a single variable name. In fact, I think some examples in the tutorial use this idiom and they need to be fixed
Normally you would fix this using a lexer with a longest-match rule, but the Dhall language cannot support a separate lexing step because some language features fundamentally conflict with lexing (specifically: nested block comments and string interpolation).
You can work around this by just prefixing the variable name with anything like Prelude/List/map
, or just calling it map
from dhall-lang.
Ah, thanks - that works. I was going off the examples at https://hackage.haskell.org/package/dhall-1.8.0/docs/Dhall-Tutorial.html#g:20, fyi.
from dhall-lang.
I'll reopen this just to remind myself to fix the tutorial examples
from dhall-lang.
Fixed by dhall-lang/dhall-haskell@834c1b6
from dhall-lang.
It turns out that there might be a way to fix the original issue after all to support identifier names like List/map
. See: #83
from dhall-lang.
Nice!
from dhall-lang.
Related Issues (20)
- Reflection or converting types to values HOT 2
- Cannot Decode Expression with extended Builtin Function HOT 1
- Q. Are you interested in syntax diagrams for Dhall? HOT 6
- Reversing order of Merge and Selection? HOT 2
- Too many duplicate type annotations? HOT 2
- `with` record update syntax removes other record fields HOT 4
- ABNF grammar should list "as Bytes" import mode
- Should the ABNF grammar disallow shebangs inside expressions? HOT 1
- eta-reducing to merge HOT 4
- Builtins operators reference: Missing record projection HOT 2
- ABNF grammar should explicitly disallow keywords as identifiers? HOT 2
- ABNF grammar should include a mandatory whitespace after `import-hashed`? HOT 1
- Improvements and fixes in the standard documentation HOT 3
- Is this an incorrect test file: `dhall-lang/tests/import/success/unit/ImportRelativeToHomeB.dhall`? HOT 2
- Link to non existing tweet
- A minimalistic proposal for do-notation
- Thoughts on introducing a minimum amount of type inference in Dhall HOT 1
- Introduce Bytes/length and Text/length as built-ins? HOT 3
- Is there a security hole: malicious sha256-protected cached content? HOT 1
- Eta-equivalence in `assert`? HOT 13
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 dhall-lang.