// Monoids
module ck/algebra/monoidck/algebra/monoid

pub value struct monoidck/algebra/monoid/monoid: V -> V<aa: V>
  oneck/algebra/monoid/monoid/one: forall<a> (monoid : monoid<a>) -> a: aa: V
  mulck/algebra/monoid/monoid/mul: forall<a> (monoid : monoid<a>) -> ((a, a) -> a): (aa: V, aa: V) -> astd/core/types/total: E

pub val int/add/monoidck/algebra/monoid/int/add/monoid: monoid<int> = Monoidck/algebra/monoid/Monoid: forall<a> (one : a, mul : (a, a) -> a) -> monoid<a>(one = 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000
, mul = (+)std/core/int/(+): (x : int, y : int) -> int
) pub val int/mul/monoidck/algebra/monoid/int/mul/monoid: monoid<int> = Monoidck/algebra/monoid/Monoid: forall<a> (one : a, mul : (a, a) -> a) -> monoid<a>(one = 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001
, mul = (*)std/core/int/(*): (int, int) -> int
) pub val list/app/monoidck/algebra/monoid/list/app/monoid: forall<a> monoid<list<a>> = Monoidck/algebra/monoid/Monoid: forall<a> (one : a, mul : (a, a) -> a) -> monoid<a>(one = [std/core/types/Nil: forall<a> list<a>]std/core/types/Nil: forall<a> list<a>, mul = (++)std/core/list/(++): (xs : list<_181>, ys : list<_181>) -> list<_181>) pub fun tuple2/monoidck/algebra/monoid/tuple2/monoid: forall<a,b> (ma : monoid<a>, mb : monoid<b>) -> monoid<(a, b)>(mama: monoid<$201>: monoidck/algebra/monoid/monoid: V -> V<aa: V>, mbmb: monoid<$202>: monoidck/algebra/monoid/monoid: V -> V<bb: V>)result: -> total monoid<(298, 299)>: monoidck/algebra/monoid/monoid: V -> V<(std/core/types/tuple2: (V, V) -> Vaa: V, bb: V)> Monoidck/algebra/monoid/Monoid: forall<a> (one : a, mul : (a, a) -> a) -> monoid<a>( one = (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)mama: monoid<$201>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$201>) -> $201, mbmb: monoid<$202>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$202>) -> $202)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b), mul = fnfn: (($201, $202), ($201, $202)) -> ($201, $202)((std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)a1a1: $201, b1b1: $202)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b), (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)a2a2: $201, b2b2: $202)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)) (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)(mama: monoid<$201>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$201>) -> (($201, $201) -> $201))(a1a1: $201, a2a2: $201), (mbmb: monoid<$202>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$202>) -> (($202, $202) -> $202))(b1b1: $202, b2b2: $202))std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b) ) pub fun tuple3/monoidck/algebra/monoid/tuple3/monoid: forall<a,b,c> (ma : monoid<a>, mb : monoid<b>, mc : monoid<c>) -> monoid<(a, b, c)>(mama: monoid<$307>: monoidck/algebra/monoid/monoid: V -> V<aa: V>, mbmb: monoid<$308>: monoidck/algebra/monoid/monoid: V -> V<bb: V>, mcmc: monoid<$309>: monoidck/algebra/monoid/monoid: V -> V<cc: V>)result: -> total monoid<(439, 440, 441)>: monoidck/algebra/monoid/monoid: V -> V<(std/core/types/tuple3: (V, V, V) -> Vaa: V, bb: V, cc: V)> Monoidck/algebra/monoid/Monoid: forall<a> (one : a, mul : (a, a) -> a) -> monoid<a>( one = (std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c)mama: monoid<$307>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$307>) -> $307, mbmb: monoid<$308>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$308>) -> $308, mcmc: monoid<$309>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$309>) -> $309)std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c), mul = fnfn: (($307, $308, $309), ($307, $308, $309)) -> ($307, $308, $309)((std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c)a1a1: $307, b1b1: $308, c1c1: $309)std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c), (std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c)a2a2: $307, b2b2: $308, c2c2: $309)std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c)) (std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c)(mama: monoid<$307>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$307>) -> (($307, $307) -> $307))(a1a1: $307, a2a2: $307), (mbmb: monoid<$308>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$308>) -> (($308, $308) -> $308))(b1b1: $308, b2b2: $308), (mcmc: monoid<$309>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$309>) -> (($309, $309) -> $309))(c1c1: $309, c2c2: $309))std/core/types/Tuple3: forall<a,b,c> (fst : a, snd : b, thd : c) -> (a, b, c) ) pub fun tuple4/monoidck/algebra/monoid/tuple4/monoid: forall<a,b,c,d> (ma : monoid<a>, mb : monoid<b>, mc : monoid<c>, md : monoid<d>) -> monoid<(a, b, c, d)>(mama: monoid<$452>: monoidck/algebra/monoid/monoid: V -> V<aa: V>, mbmb: monoid<$453>: monoidck/algebra/monoid/monoid: V -> V<bb: V>, mcmc: monoid<$454>: monoidck/algebra/monoid/monoid: V -> V<cc: V>, mdmd: monoid<$455>: monoidck/algebra/monoid/monoid: V -> V<dd: V>)result: -> total monoid<(619, 620, 621, 622)>: monoidck/algebra/monoid/monoid: V -> V<(std/core/types/tuple4: (V, V, V, V) -> Vaa: V, bb: V, cc: V, dd: V)> Monoidck/algebra/monoid/Monoid: forall<a> (one : a, mul : (a, a) -> a) -> monoid<a>( one = (std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d)mama: monoid<$452>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$452>) -> $452, mbmb: monoid<$453>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$453>) -> $453, mcmc: monoid<$454>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$454>) -> $454, mdmd: monoid<$455>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$455>) -> $455)std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d), mul = fnfn: (($452, $453, $454, $455), ($452, $453, $454, $455)) -> ($452, $453, $454, $455)((std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d)a1a1: $452, b1b1: $453, c1c1: $454, d1d1: $455)std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d), (std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d)a2a2: $452, b2b2: $453, c2c2: $454, d2d2: $455)std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d)) (std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d)(mama: monoid<$452>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$452>) -> (($452, $452) -> $452))(a1a1: $452, a2a2: $452), (mbmb: monoid<$453>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$453>) -> (($453, $453) -> $453))(b1b1: $453, b2b2: $453), (mcmc: monoid<$454>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$454>) -> (($454, $454) -> $454))(c1c1: $454, c2c2: $454), (mdmd: monoid<$455>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$455>) -> (($455, $455) -> $455))(d1d1: $455, d2d2: $455))std/core/types/Tuple4: forall<a,b,c,d> (fst : a, snd : b, thd : c, field4 : d) -> (a, b, c, d) ) pub fun opposite-monoidck/algebra/monoid/opposite-monoid: forall<a> (@implicit/monoid : monoid<a>) -> monoid<a>(@implicit/monoid?monoid: monoid<$636>: monoidck/algebra/monoid/monoid: V -> V<aa: V>)result: -> total monoid<672>: monoidck/algebra/monoid/monoid: V -> V<aa: V> Monoidck/algebra/monoid/Monoid: forall<a> (one : a, mul : (a, a) -> a) -> monoid<a>(one = @implicit/monoid?monoid: monoid<$636>.oneck/algebra/monoid/monoid/one: (monoid : monoid<$636>) -> $636, mul = fnfn: (x : $636, y : $636) -> $636(xx: $636, yy: $636) (@implicit/monoid?monoid: monoid<$636>.mulck/algebra/monoid/monoid/mul: (monoid : monoid<$636>) -> (($636, $636) -> $636))(yy: $636, xx: $636))