[GHC] #12162: Concatenation of type level symbols missing
GHC
ghc-devs at haskell.org
Mon Oct 24 08:16:31 UTC 2016
#12162: Concatenation of type level symbols missing
-------------------------------------+-------------------------------------
Reporter: augustss | Owner: phadej
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D2632
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
Generally the patch looks good to me, thank you. But can we first agree
about goals and nomenclature.
* Minor: you use the term "concat" in the implementation, but the list
`concat` function has type `[[a]] -> [a]` not `[a] -> [a] -> [a]`. We
generally use "append" for the latter; e.g. `appendFS`.
* In order to do this you have figured out how to add a new type-level
operator to GHC. Is that written up on the wiki anywhere? If not it'd be
great if you could do so? There are a number of separate things you have
to do. [wiki:TypeNats] would be a good place to start, despite its Nat-
sounding title.
* More significant. You are introducing a type-level operator `(<>) ::
Symbol -> Symbol -> Symbol`. Wouldn't `(++)` be more appropriate? It's
type is very like `(++)`.
The other use of `(<>)` that I know of is in the pretty printing
library, where it has type `Doc -> Doc -> Doc` so there is precedent
there.
I think it partly depends on whether we are regarding `Symbol` as an
opaque type; in which case we might want to keep `(++)` for appending
type-level lists (or does it exist already?). But #11342 is (I think)
arguing for a less opaque representation.
* Incidentally I realise that I don't know how to find the Haddock docs
for the functions available over `Symbol`....
I'm copying in the core libraries committee, since this is really their
territory.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12162#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list