Package

psp

api

Permalink

package api

Visibility
  1. Public
  2. All

Type Members

  1. sealed abstract class <:<[-From, +To] extends (From) ⇒ To

    Permalink
  2. final case class AndThen[-A, B, +C](f: Fun[A, B], g: Fun[B, C]) extends Fun[A, C] with Product with Serializable

    Permalink
  3. sealed trait Atomic extends Size

    Permalink
  4. final case class Bounded extends Size with Product with Serializable

    Permalink
  5. trait Builds[-Elem, +To] extends api.Api.Any

    Permalink

    Back and forth between a Repr and an Each[A].

    Back and forth between a Repr and an Each[A]. Not especially classic in this presentation.

  6. trait Cleaver[R, A, B] extends Joiner[R, A, B] with Splitter[R, A, B]

    Permalink
  7. final class Cmp extends Enum[Cmp]

    Permalink
  8. final case class Defaulted[-A, +B](g: (A) ⇒ B, u: Fun[A, B]) extends Fun[A, B] with Product with Serializable

    Permalink
  9. trait Direct[+A] extends Indexed[A]

    Permalink
  10. sealed abstract class Doc extends AnyRef

    Permalink

    A not very impressive attempt to improve on string representations.

  11. trait Each[+A] extends Foreach[A] with NotView

    Permalink
  12. trait Empty[+A] extends api.Api.Any

    Permalink

    The original type class for providing the "empty" value of a particular type.

    The original type class for providing the "empty" value of a particular type. Suitable only for types with a unique (useful) definition of empty - but that's a lot of types. You could easily recover the behavior of methods like Option.get or Seq.head by creating a default instance of Empty[A] which throws an exception.

  13. trait Eq[-A] extends api.Api.Any

    Permalink

    The classic type classes for encoding value equivalence and hash codes.

  14. trait ExMap[K, +V] extends api.Api.Any

    Permalink
  15. trait ExSet[A] extends Each[A]

    Permalink
  16. final case class FilterIn[-A, +B](p: (A) ⇒ Api.Boolean, u: Fun[A, B]) extends Fun[A, B] with Product with Serializable

    Permalink
  17. final case class FiniteDom[A, +B](keys: ExSet[A], f: Fun[A, B]) extends Fun[A, B] with Product with Serializable

    Permalink
  18. trait Foreach[+A] extends api.Api.Any

    Permalink

    Foreach is the common parent of View and Each.

    Foreach is the common parent of View and Each.

    A View always wraps an indeterminate number of Views and a single Each which provides the original basis. An Each may be composed from smaller Eaches but is otherwise atomic. The size of an Each is known, the size of a View may not be.

  19. sealed abstract class Fun[-A, +B] extends AnyRef

    Permalink

    A richer function abstraction.

    A richer function abstraction.

    No way to avoid at least having apply as a member method if there's to be any hope of seeing these converted into scala.Functions.

  20. trait Hash[-A] extends Eq[A]

    Permalink
  21. trait IView[A] extends View[A]

    Permalink

    When the operation has an A in negative position.

  22. trait Index extends Vindex

    Permalink
  23. trait Indexed[+A] extends Each[A]

    Permalink
  24. trait IsEmpty extends api.Api.Any

    Permalink

    Name-based extractor methods.

    Name-based extractor methods. These interfaces aren't necessary for it (thus "name-based") but provide helpful structure when used.

  25. trait IsView extends MaybeView

    Permalink
  26. trait Joiner[+R, -A, -B] extends api.Api.Any

    Permalink
  27. sealed trait MaybeView extends api.Api.Any

    Permalink
  28. trait NotView extends MaybeView

    Permalink
  29. trait Nth extends Vindex

    Permalink
  30. final case class Opaque[-A, +B](f: (A) ⇒ B) extends Fun[A, B] with Product with Serializable

    Permalink
  31. trait Opt[+A] extends IsEmpty

    Permalink
  32. final case class OrElse[-A, +B](f: Fun[A, B], g: Fun[A, B]) extends Fun[A, B] with Product with Serializable

    Permalink
  33. trait Order[-A] extends Eq[A]

    Permalink

    Contravariance vs.

    Contravariance vs. implicits, the endless battle. We return a java three-value enum from compare in preference to a wild stab into the 2^32 states of an Int. This is a controversial thing to do, in the year 2014. Not joking.

  34. final class Precise extends api.Api.AnyVal with Atomic

    Permalink
  35. trait PspApi extends ExternalLibs

    Permalink
  36. trait PspCreators extends AnyRef

    Permalink
  37. trait PspOptionType extends AnyRef

    Permalink
  38. trait Show[-A] extends api.Api.Any

    Permalink

    The classic type class for turning typed values into string representations.

  39. trait ShowDirect extends api.Api.Any

    Permalink

    When a Show type class is more trouble than it's worth.

    When a Show type class is more trouble than it's worth. Not overriding toString here to leave open the possibility of using a synthetic toString, e.g. of case classes.

  40. trait ShowSelf extends ShowDirect

    Permalink
  41. sealed trait Size extends api.Api.Any

    Permalink

    The Size hierarchy is: Size / \ Atomic Bounded / \ Infinite Precise

    The Size hierarchy is: Size / \ Atomic Bounded / \ Infinite Precise

    Precise implies the exact size is known. Infinite means it's infinite. Bounded is a size lower bound and a (possibly infinite) atomic upper bound. Size forms a partial order, with some liberties taken at present. Operations on sizes which are ill-defined will result in "Unknown", which encodes no available size information: Bounded(Zero, Infinite).

    Invariants:

    • Precise is non-negative
  42. final class SizeExtractor extends api.Api.AnyVal with Opt[api.Api.Long]

    Permalink
  43. trait SplitView[+A] extends api.Api.Any

    Permalink

    When a View is split into two disjoint views.

    When a View is split into two disjoint views. Notably, that's span, partition, and splitAt.

  44. trait Splitter[-R, +A, +B] extends api.Api.Any

    Permalink

    Type classes and extractors for composing and decomposing an R into A -> B.

    Type classes and extractors for composing and decomposing an R into A -> B. Somewhat conveniently for us, "cleave" is a word which has among its meanings "to adhere firmly and closely as though evenly and securely glued" as well as "to divide into two parts by a cutting blow".

  45. trait Unbuilds[Repr] extends api.Api.Any

    Permalink
  46. trait View[+A] extends Foreach[A] with IsView

    Permalink
  47. sealed trait Vindex extends Opt[api.Api.Long]

    Permalink
  48. trait ZipView[+A1, +A2] extends api.Api.Any

    Permalink

    When a View presents as a sequence of pairs.

    When a View presents as a sequence of pairs. There may be two underlying views being zipped, or one view holding pairs.

  49. final class conformance[A] extends <:<[A, A]

    Permalink
  50. class fspec extends Annotation with StaticAnnotation

    Permalink

Value Members

  1. object ::

    Permalink
  2. object Cleaver

    Permalink
  3. object Doc

    Permalink
  4. object Finite extends (api.Api.Long) ⇒ Precise

    Permalink
  5. object Infinite extends Atomic with Product with Serializable

    Permalink
  6. object Joiner

    Permalink
  7. object Pair

    Permalink
  8. object Size

    Permalink
  9. object Splitter

    Permalink

Ungrouped