p
supertagged
package supertagged
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- supertagged
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Type Members
- type @@[T, +U] = T with Tag[T, U]
- sealed class Extractor[Raw, T] extends AnyRef
Extractor
- sealed trait ImplicitScope[T, +U] extends Any
- trait LiftedOrdering extends AnyRef
Lifted Orderings.
Lifted Orderings. Mix them to tagged & newtypes. Ex:
object Width extends TaggedType[Int] with LiftedOrdering
- trait LiftedOrderingT extends AnyRef
- trait NewType[T] extends AnyRef
- trait NewType0 extends AnyRef
- trait NewTypeT extends NewType0
- type Newtype[Repr, Ops] = AnyRef { ... /* 2 definitions in type refinement */ }
NEW TYPES
- class OverTagged[R, T <: TaggedType[R]] extends TaggedType[R with Tag[R, supertagged.OverTagged.T.Tag]]
New name: Overtagged
- sealed trait Tag[T, +U] extends Any
Making universal trait for overcoming
feature bug
(knowing as[I cannot be cast to [Ljava.lang.Object;
- see at TestScalacBug).Making universal trait for overcoming
feature bug
(knowing as[I cannot be cast to [Ljava.lang.Object;
- see at TestScalacBug). Everything seems ok for now. There is no runtime overhead(after jit). Casting doesn't change memory model, boxing for primitive types appears only at specific corner cases and JIT cleans generated rubbish bytecode very well - type Tagged[T, +U] = T with Tag[T, U]
- sealed class TaggedOps[Raw, Tag, Type] extends AnyRef
- trait TaggedType[T] extends TaggedType0[T] with LiftedOrdering
- trait TaggedType0[T] extends AnyRef
- trait TaggedTypeT extends TaggedTypeT0
- trait TaggedTypeT0 extends AnyRef