|
Scala example source code file (ComonadStore.scala)
The ComonadStore.scala Scala example source code
package scalaz
////
/**
*
*/
////
trait ComonadStore[F[_], S] extends Comonad[F] { self =>
////
def pos[A](w: F[A]): S
def peek[A](s: S, w: F[A]): A
def peeks[A](s: S => S, w: F[A]): A =
peek(s(pos(w)), w)
def seek[A](s: S, w: F[A]): F[A] =
peek(s, cojoin(w))
def seeks[A](s: S => S, w: F[A]): F[A] =
peeks(s, cojoin(w))
def experiment[G[_], A](s: S => G[S], w: F[A])(implicit FG: Functor[G]): G[A] =
FG.map(s(pos(w)))(peek(_, w))
////
}
object ComonadStore {
@inline def apply[F[_], S](implicit F: ComonadStore[F, S]): ComonadStore[F, S] = F
////
////
}
Other Scala examples (source code examples)Here is a short list of links related to this Scala ComonadStore.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.