typequux
package typequux
- Alphabetic
- Public
- Protected
Package Members
- package constraint
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
- trait Fold[-Elem, Value] extends AnyRef
Typeclass for typelevel and valuelevel fold
Typeclass for typelevel and valuelevel fold
Author:
Harshad Deo
- Since
0.1
- trait Fold2[-Elem1, -Elem2, Value] extends AnyRef
Typeclass for typelevel and valuelevel fold for a tuple arg
Typeclass for typelevel and valuelevel fold for a tuple arg
Author:
Harshad Deo
- Since
0.6.0
- 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
- 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
- Annotations
- @SuppressWarnings()
- 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 Typequux
- 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