Module Comonad.For

Parameters

Signature

include Indexed_comonad.LAWS with type ('a, _) t := 'a C.t
include Indexed_functor.LAWS with type ('a, 'index) t := 'a C.t
val functor_1 : unit -> ('a C.t, 'a C.t) Law.t
val functor_2 : unit -> ('a -> 'b, ('c -> 'a) -> 'c C.t -> 'b C.t) Law.t
val comonad_1 : unit -> ('a C.t, 'a C.t) Law.t
val comonad_2 : unit -> ('a C.t -> 'b, 'a C.t -> 'b) Law.t
val comonad_3 : unit -> ('a C.t -> 'b, ('c C.t -> 'a) -> 'c C.t -> 'b C.t) Law.t
val comonad_4 : unit -> ('a C.t -> 'b, 'a C.t -> 'b) Law.t
val comonad_5 : unit -> ('a C.t -> 'b, 'a C.t -> 'b) Law.t
val comonad_6 : unit -> ('a C.t -> 'b, ('b C.t -> 'c) -> ('c C.t -> 'd) -> 'a C.t -> 'd) Law.t
val comonad_7 : unit -> ('a C.t, 'a C.t) Law.t
val comonad_8 : unit -> ('a C.t, 'a C.t) Law.t
val comonad_9 : unit -> ('a C.t, 'a C.t C.t C.t) Law.t
val comonad_10 : unit -> ('a C.t -> 'b, 'a C.t -> 'b C.t) Law.t
val comonad_11 : unit -> ('a C.t, 'a C.t C.t) Law.t
val comonad_12 : unit -> ('a -> 'b, 'a C.t -> 'b C.t) Law.t