typequux
package typequux
- Alphabetic
- Public
- All
Type Members
-
final
class
AllContained
[HL1, HL2] extends AnyRef
Marker that all types of HL1 are contained in HL2
Marker that all types of HL1 are contained in HL2
Author:
Harshad Deo
- Since
0.2.2
-
class
ArityIndexOps
[Z] extends AnyRef
Provides scala collection like operations on sequantially indexed arbitrary arity types, like HList and tuple
Provides scala collection like operations on sequantially indexed arbitrary arity types, like HList and tuple
Author:
Harshad Deo
- Z
Type on which the operations are defined
- Since
0.1
-
class
ArityZipOps
[Z, F] extends AnyRef
Provided arbitrary arity zips for sequentially indexed arbitrary arity types, like HList or Tuples
Provided arbitrary arity zips for sequentially indexed arbitrary arity types, like HList or Tuples
Author:
Harshad Deo
- Z
Type on which operations are defined
- F
Down-converted type of Z. For more, see constraint.DownTransformConstraint
- Since
0.1
-
sealed
trait
Bool
extends AnyRef
Church encodings of booleans.
Church encodings of booleans.
Can be understood as an alias for a type constructor that chooses between one of two alternative types. Is primarily used to enforce the invariants of more complex type-level operations
Author:
Harshad Deo
- Since
0.1
-
sealed
trait
Comparison
extends AnyRef
Typelevel encoding of the result of a comparison
Typelevel encoding of the result of a comparison
Author:
Harshad Deo
- Since
0.1
-
final
class
Contained
[A, HL] extends AnyRef
Marker that type A is one of the types of the supplied HList type
Marker that type A is one of the types of the supplied HList type
Author:
Harshad Deo
- A
Type under consideration
- HL
HList of types to check against
- Since
0.1
-
sealed
trait
Dense
extends AnyRef
Typelevel representation of dense numbers, stored as a list of Dense.Digit
Typelevel representation of dense numbers, stored as a list of Dense.Digit
Author:
Harshad Deo
- Since
0.1
-
sealed
trait
DenseDiff
[M, S, D] extends AnyRef
Marker trait for typelevel subtraction of Dense numbers.
Marker trait for typelevel subtraction of Dense numbers.
Takes linear time (compared to log time for addition), therefore its usage should be limited
Author:
Harshad Deo
- M
Minuend
- S
Subtrahend
- D
Difference
- Since
0.1
-
sealed
trait
DenseMap
extends AnyRef
Typelevel map in which the keys are Dense numbers.
Typelevel map in which the keys are Dense numbers. Implemented a binary tree.
Author:
Harshad Deo
- Since
0.1
-
sealed
trait
DenseSet
extends AnyRef
Typelevel set of Dense numbers, implemented as a binary tree
-
sealed
trait
HList
extends AnyRef
Sequentially indexed arbitrary arity type in which each element can be of a different type
Sequentially indexed arbitrary arity type in which each element can be of a different type
Author:
Harshad Deo
- Since
0.1
-
sealed
trait
HList2TupleConverter
[T, HL] extends AnyRef
Conversions from HList to Tuple
Conversions from HList to Tuple
Author:
Harshad Deo
- T
Type of the resultant Tuple
- HL
Type of the input HList
- Since
0.1
-
class
HListOps
[B <: HList] extends ArityIndexOps[B]
Common operations on HList
Common operations on HList
Author:
Harshad Deo
- B
Type of the HList on which the operations are defined
- Since
0.1
-
trait
LiteralHash
[X] extends AnyRef
Typelevel representation of a compile time constant literal.
Typelevel representation of a compile time constant literal.
The type hash encoded the type of the literal and the value encoded the value of the literal therefore, even if say, a char and string have the same value hash, they will have different literal hashes.
Author:
Harshad Deo
- X
Type of the literal that has been hashed
- Since
0.1
-
trait
LowPriorityHList2TupleConverter
extends AnyRef
Provided implicit definition to convert HList to Tuple1.
Provided implicit definition to convert HList to Tuple1. Kept in a trait that is subtyped to avoid ambiguity with more specific converters
Author:
Harshad Deo
- Since
0.1
-
sealed
trait
Nat
extends AnyRef
Peano encoding of natural numbers
Peano encoding of natural numbers
Author:
Harshad Deo
- Since
0.1
-
trait
NatDiff
[M <: Nat, S <: Nat, D <: Nat] extends AnyRef
Marker trait for typelevel subtraction of Nat
Marker trait for typelevel subtraction of Nat
Author:
Harshad Deo
- M
Minuend
- S
Subtrahend
- D
Difference
- Since
0.1
-
final
class
NotContained
[A, HL] extends AnyRef
Marker that type A is not one of the types of the supplied HList type
Marker that type A is not one of the types of the supplied HList type
Author:
Harshad Deo
- A
Type under consideration
- HL
HList of types to check against
- Since
0.1
-
final
class
NotSubType
[A, HL] extends AnyRef
Marker that type A is not a subtype of the types of the supplied HList type
Marker that type A is not a subtype of the types of the supplied HList type
Author:
Harshad Deo
- A
Type under consideration
- HL
HList of types to check against
- Since
0.1
-
sealed
trait
Record
extends AnyRef
String indexed collection in which the elements can have different types.
-
class
SiOps
[S] extends AnyRef
Provides scala collection like operations on string indexed collections like Record and StringIndexedCollection
Provides scala collection like operations on string indexed collections like Record and StringIndexedCollection
Author:
Harshad Deo
- S
Type on which the operations are defined
- Since
0.1
-
final
class
SizedVector
[N <: Dense, +T] extends AnyRef
Sequantially indexed immutable collection of fixed size in which all elements are of the same type.
Sequantially indexed immutable collection of fixed size in which all elements are of the same type. Uses scala.collection.immutable.Vector as a backing datastructure.
Author:
Harshad Deo
- N
Size of the collection
- T
Element type of the collection
- Since
0.1
-
sealed
trait
StringIndexedCollection
[+T] extends AnyRef
String indexed collection in which all the elements are of the same type.
String indexed collection in which all the elements are of the same type. Uses scala.collection.immutable.Vector and DenseMap as backing datastructures
Author:
Harshad Deo
- T
Type of the collection
- Since
0.1
-
final
class
SubType
[A, HL] extends AnyRef
Marker that type A is a subtype of one of the types of the supplied HList type
Marker that type A is a subtype of one of the types of the supplied HList type
Author:
Harshad Deo
- A
Type under consideration
- HL
HList of types to check against
- Since
0.1
-
sealed
trait
Tuple2HListConverter
[T, HL] extends AnyRef
Conversion from Tuple to HList
Conversion from Tuple to HList
Author:
Harshad Deo
- T
Type of the tuple
- HL
Type of the resultant HList
- Since
0.1
-
class
TupleIndexOps
[Z] extends ArityIndexOps[Z]
Provides scala collection-like operations on tuples.
Provides scala collection-like operations on tuples.
Author:
Harshad Deo
- Z
Type of the tuple for which the operation is defined
- Since
0.1
-
trait
~>
[-F[_], +G[_]] extends AnyRef
Proxy for natural transformations between contexts
Proxy for natural transformations between contexts
Author:
Harshad Deo
- F
Source Context
- G
Destination Context
- Since
0.1
Value Members
- object AllContained
-
object
Bool
Contains implementation for Bool and typeconstructor aliases that make usage more pleasant
Contains implementation for Bool and typeconstructor aliases that make usage more pleasant
The operations can be shown to satisfy:
1. Associativity of Or:
||[A, B || C] =:= ||[A || B, C]
2. Associativity of And:
&&[A, B && C] =:= &&[A && B, C]
3. Commutativity of Or:
||[A, B] =:= ||[B, A]
4. Commutativity of And:
&&[A, B] =:= &&[B, A]
5. Distributivity of Or over And:
||[A, B && C] =:= &&[A || B, A || C]
6. Distributivity of And over Or:
&&[A, B || C] =:= ||[A && B, A && C]
7. Identity for Or:
||[A, False] =:= A
8. Identity for And:
&&[A, True] =:= A
9. Annhilator for Or:
||[A, True] =:= True
10. Annhilator for And:
&&[A, False] =:= False
11. Idempotence of Or:
||[A, A] =:= A
12. Idempotence of And:
&&[A, A] =:= A
13. Absorption 1:
&&[A, A || B] =:= A
14. Absorbtion 2:
||[A, A && B] =:= A
15. Complementation 1:
&&[A, Not[A]] =:= False
16. Complementation 2:
||[A, Not[A]] =:= True
17. Double Negation:
Not[Not[A]] =:= A
18. De Morgan 1:
&&[Not[A], Not[B]] =:= Not[A || B]
19. De Morgan 2:
||[Not[A], Not[B]] =:= Not[A && B]
Author:
Harshad Deo
- Since
0.1
-
object
Comparison
Contains implementation for Comparison
-
object
Contained
Contains implicit definitions to build a Contained marker.
-
object
Dense
Contains implementation for Dense and typeconstructor aliases that make usage more pleasant
Contains implementation for Dense and typeconstructor aliases that make usage more pleasant
The operations can be shown to satisfy:
1. Additive commutativity:
+[A, B] =:= +[B, A]
2. Additive associativity:
+[A, +[B, C]] =:= +[+[A, B], C]
3. Additive identity:
+[A, _0] =:= A =:= +[_0, A]
4. Multiplicative commutativity:
*[A, B] =:= *[B, A]
5. Multiplicative associativity:
*[A, *[B, C]] =:= *[*[A, B], C]
6. Multiplicative identity:
*[A, _1] =:= A =:= *[_1, A]
7. Distributivity:
*[A, +[B, C]] =:= +[*[A, B], *[A, C]]
8. Zero exponent:
^[A, _0] =:= _1
9. One exponent:
^[_1, A] =:= _1
10. Exponent Identity:
^[A, _1] =:= A
11. Exponent combination 1:
*[^[A, B], ^[A, C]] =:= ^[A, *[B, C]]
12. Exponent combination 2:
^[^[A, B], C] =:= ^[A, *[B, C]]
13. Exponent combination 3:
^[*[A, B], C] =:= *[^[A, C], ^[B, C]]
14. Total Order
Author:
Harshad Deo
- Since
0.1
-
object
DenseDiff
Contains implicit definitions to build a DenseDiff marker
-
object
DenseMap
Contains implementation traits for DenseMap and typeconstructor aliases that make usage more pleasant.
Contains implementation traits for DenseMap and typeconstructor aliases that make usage more pleasant.
Author:
Harshad Deo
- Since
0.1
-
object
DenseSet
Contains implementation traits for DenseSet and typeconstructor aliases that make usage more pleasant.
Contains implementation traits for DenseSet and typeconstructor aliases that make usage more pleasant.
Author:
Harshad Deo
- Since
0.1
-
object
HList
Contains implementations for HList and implicit definitions to build the constraint typeclasses necessary for operations.
Contains implementations for HList and implicit definitions to build the constraint typeclasses necessary for operations.
Author:
Harshad Deo
- Since
0.1
-
object
HList2TupleConverter
extends LowPriorityHList2TupleConverter
Provides implicit definitions to convert Tuple2-18 to HList.
Provides implicit definitions to convert Tuple2-18 to HList. Beyond Tuple18, the implicit search takes too long to be practical
Author:
Harshad Deo
- Since
0.1
-
object
LiteralHash
Contains implicit conversions to convert literals to their corresponding LiteralHash
Contains implicit conversions to convert literals to their corresponding LiteralHash
Author:
Harshad Deo
- Since
0.1
-
object
Nat
Contains implementation traits for Nat and typeconstructor aliases that make usage more pleasant.
Contains implementation traits for Nat and typeconstructor aliases that make usage more pleasant.
1. Additive commutativity:
+[A, B] =:= +[B, A]
2. Additive associativity:
+[A, +[B, C]] =:= +[+[A, B], C]
3. Additive identity:
+[A, _0] =:= A =:= +[_0, A]
4. Multiplicative commutativity:
*[A, B] =:= *[B, A]
5. Multiplicative associativity:
*[A, *[B, C]] =:= *[*[A, B], C]
6. Multiplicative identity:
*[A, _1] =:= A =:= *[_1, A]
7. Distributivity:
*[A, +[B, C]] =:= +[*[A, B], *[A, C]]
8. Zero exponent:
^[A, _0] =:= _1
9. One exponent:
^[_1, A] =:= _1
10. Exponent Identity:
^[A, _1] =:= A
11. Total Order
Author:
Harshad Deo
- Since
0.1
-
object
NatDiff
Contains implicit definitions to build a NatDiff marker
-
object
NotContained
Contains implicit definitions to build a NotContained marker.
-
object
NotSubType
Containt implicit definitions to build a NotSubType marker
-
object
Record
Contains implementations of Record and implicit definitions for building typeclasses necessary for the operations on records
Contains implementations of Record and implicit definitions for building typeclasses necessary for the operations on records
Author:
Harshad Deo
- Since
0.1
-
object
SizedVector
Implements methods to construct SizedVector objects
-
object
StringIndexedCollection
Contains implementations of StringIndexedCollection and implicit definitions for building typeclasses necessary for the operations on string indexed collections
Contains implementations of StringIndexedCollection and implicit definitions for building typeclasses necessary for the operations on string indexed collections
Author:
Harshad Deo
- Since
0.1
-
object
SubType
Containt implicit definitions to build a SubType marker
-
object
Tuple2HListConverter
Provides implicit definitions to convert Tuple2-22 to HList
-
object
TupleOps
Provides implicit definitions to build constraint typeclasses for tuples.
Provides implicit definitions to build constraint typeclasses for tuples. To do so, converts the tuple to the corresponding HList, applies the operation on the HList and converts the result back to a tuple.
Author:
Harshad Deo
- Since
0.1
-
object
~>
Contains implicit conversions and values that provide several utility methods
Contains implicit conversions and values that provide several utility methods
Author:
Harshad Deo
- Since
0.1