perspective

package perspective

Type members

Classlikes

trait ApplicativeK[F[_[_], _]] extends ApplyK[F]
trait ApplyK[F[_[_], _]] extends FunctorK[F]
trait DistributiveK[F[_[_], _]] extends FunctorK[F]
case class Finite[N <: Int]

A wrapper around an finite integer domain. Stores the size at the type level.

A wrapper around an finite integer domain. Stores the size at the type level.

Companion
object
object Finite
Companion
class
trait FoldableK[F[_[_], _]]
object FunctionK
trait FunctorK[F[_[_], _]]
trait MonadK[F[_[_], _]] extends ApplicativeK[F]
trait RepresentableK[F[_[_], _]] extends MonadK[F] with DistributiveK[F]
Companion
object
Companion
class
trait TraverseK[F[_[_], _]] extends FunctorK[F] with FoldableK[F]
object ValueK

Types

type #~>#:[T, R] = FunctionK[Const[T], Const[R]]
type #~>:[T, F[_]] = FunctionK[Const[T], F]
type ApplicativeKC[F[_[_]]] = ApplicativeK[IgnoreC[F]]
type ApplyKC[F[_[_]]] = ApplyK[IgnoreC[F]]
type Compose2[A[_], B[_]] = [Z] =>> A[B[Z]]
type Compose3[A[_], B[_], C[_]] = [Z] =>> A[B[C[Z]]]
type Compose4[A[_], B[_], C[_], D[_]] = [Z] =>> A[B[C[D[Z]]]]
type Compose5[A[_], B[_], C[_], D[_], E[_]] = [Z] =>> A[B[C[D[E[Z]]]]]
type Const[A] = [_] =>> A
type DistributiveKC[F[_[_]]] = DistributiveK[IgnoreC[F]]
type FoldableKC[F[_[_]]] = FoldableK[IgnoreC[F]]
type FunctionK[A[_], B[_]] = [Z] => (x$1: A[Z]) => B[Z]
type FunctorKC[F[_[_]]] = FunctorK[IgnoreC[F]]
type Id[A] = A
type IdF[F[_], A] = F[A]
type IdFC[A] = [F[_], _] =>> F[A]
type IgnoreC[F[_[_]]] = [A[_], _] =>> F[A]
type MonadKC[F[_[_]]] = MonadK[IgnoreC[F]]
type TraverseKC[F[_[_]]] = TraverseK[IgnoreC[F]]
type Tuple2K[A[_], B[_]] = [Z] =>> (A[Z], B[Z])
type Tuple2KK[A[_[_], _], B[_[_], _]] = [Z[_], ZC] =>> (A[Z, ZC], B[Z, ZC])
type Tuple3K[A[_], B[_], C[_]] = [Z] =>> (A[Z], B[Z], C[Z])
type Tuple3KK[A[_[_], _], B[_[_], _], C[_[_], _]] = [Z[_], ZC] =>> (A[Z, ZC], B[Z, ZC], C[Z, ZC])
type Tuple4K[A[_], B[_], C[_], D[_]] = [Z] =>> (A[Z], B[Z], C[Z], D[Z])
type Tuple4KK[A[_[_], _], B[_[_], _], C[_[_], _], D[_[_], _]] = [Z[_], ZC] =>> (A[Z, ZC], B[Z, ZC], C[Z, ZC], D[Z, ZC])
type Tuple5K[A[_], B[_], C[_], D[_], E[_]] = [Z] =>> (A[Z], B[Z], C[Z], D[Z], E[Z])
type Tuple5KK[A[_[_], _], B[_[_], _], C[_[_], _], D[_[_], _], E[_[_], _]] = [Z[_], ZC] =>> (A[Z, ZC], B[Z, ZC], C[Z, ZC], D[Z, ZC], E[Z, ZC])
type ValueK[A[_]] = [Z] => () => A[Z]
type ~>#:[F[_], R] = FunctionK[F, Const[R]]
type ~>:[A[_], B[_]] = FunctionK[A, B]