Is MacroTypeTag too deceptive?
The problem with MacroTypeTag is that it can be used outside macros.
A fact about FullTypeTag that I don't like is that it implies that
it's somehow more full-fledged than TypeTag.
What about ArbTypeTag (from arbitrary)? I agree the name is cryptic,
but at least it's not misleading and it doesn't imply that this type
tag carries more information that a vanilla TypeTag.
Uni, of course wins since it implies Unicorn.
Please, send me some unicorn types for this rainbow code!
ConcreteTypeTag is supposed to be used much more frequently than AbsTypeTag, so I wouldn't like to make it a mouthful.
On 3 September 2012 11:29, Thomas Matthijs <li...@selckin.be> wrote:
On Sun, Sep 2, 2012 at 9:37 PM, Eugene Burmako <eugene....@epfl.ch> wrote:
> After today's discussion at SO I think that the name is not just a bit
> unfortunate yet bearable, but actually is actively destructive. Hence
> we need a new name. What would you suggest?
>
> For the background behind TypeTag and AbsTypeTag:
> http://stackoverflow.com/questions/12093752.
Forgive me if this makes no sense at all, since i don't really know
what type tags are, but from the description on that SO post, it seems
like:
TypeTag -> ConcreteTypeTag
AbsTypeTag -> TypeTag
We all have IDEs with auto-completion.
Is the problem that "Abs" is ambiguous--Abstract? Absolute?
On Mon, Sep 3, 2012 at 2:38 PM, Christopher VogtOf these I quite like,
<christop...@rwth-aachen.de> wrote:
> Eugene, maybe you can elaborate on the problem you see.
>
> In principle I agree with the current situation, that the most commonly
> used tags should be called just TypeTag for ease of writing, even when
> your IDE is not at hand.
>
> To brainstorm some more names for AbsTypeTag:
>
> PartialTypeTag
> PartiallyKnownTypeTag
> PartiallyAbstractTypeTag
> IncompleteTypeTag
> BestEffortTypeTag
>
> AbstractTypeTag
> UnresolvedTypeTag
> StaticTypeTag
> InconcreteTypeTag
IncompleteTypeTag
UnresolvedTypeTag
PartialTypeTag
The problem with all these is that they imply that the tag is not complete, which is not necessarily the case. Maybe that's unavoidable, though.
GenericTypeTag
On Mon, Sep 3, 2012 at 8:43 AM, martin odersky <martin....@epfl.ch> wrote:
The problem with all these is that they imply that the tag is not complete, which is not necessarily the case. Maybe that's unavoidable, though.
I think it's unavoidable without a ridiculous name like "PossiblyIncompleteTypeTag"
and we should say all complete tags are also incomplete tags which can be made complete by applying the identity.
Of these I quite like,
IncompleteTypeTag
UnresolvedTypeTag
Roland Kuhn
Typesafe – The software stack for applications that scale.
twitter: @rolandkuhn
This is actually the first suggestion which resonated with me. “Generic” on the JVM very much means that a type parameter is involved, which—as far as I understand the issue at hand—is precisely what is going on here. I’m not sufficiently versed in academic computer science to judge whether “generic” has exactly the right meaning, but for a layman it seems to capture the difference quite nicely.
I already got burned on aliases having c.reify and c.universe.reify doing slightly different things, so to be honest I'm not a big fan of aliases in the api.
The problem was that c.reify was using c.mirror, whereas c.universe.reify was using c.universe.mirror.What I wanted to say is that if we alias names like "trait Context { type TypeTag = universe.AbstractTypeTag }" (which was suggested above), then we're asking for trouble, because c.TypeTag and c.universe.TypeTag would stand for different things.
On 4 September 2012 08:15, Paul Phillips <pa...@improving.org> wrote:On Mon, Sep 3, 2012 at 1:33 PM, Eugene Burmako <eugene....@epfl.ch> wrote:I already got burned on aliases having c.reify and c.universe.reify doing slightly different things, so to be honest I'm not a big fan of aliases in the api.I'm not a big fan of aliases in the api either, but I'm not sure you can pin c.reify and c.universe.reify doing different things on aliases. You'd have to remind me of what exactly happened there, but as much as I remember there was mass-aliasing plus shadowing going on, and that's going to hurt eventually because it's sure to become inconsistent. It's not in the same category as "type Foo = LongNameForFoo."