var searchIndex = {}; searchIndex["functional"] = {"doc":"","items":[[3,"Add","functional","One of the basic binary operation type\nIt's autoimplemeted for all types which implement std::ops::Add<Self, Output=Self>",null,null],[3,"Mul","","One of the basic binary operation type\nIt's autoimplemeted for all types which implement std::ops::Mul<Self, Output=Self>",null,null],[3,"Concat","","Concatination operation for sequenses",null,null],[8,"Equals","","Equality trait\nIt is widely used in complex type traits to declare equalty between any types\nEquals<T> is implemented for T\nNo others implementations alowed",null,null],[10,"eqcast","","",0,null],[8,"Generic1","","Generic types can implement this trait\nproviding an ability to extract first generic parameter.",null,null],[16,"Type","","",1,null],[8,"Rebind1","","Generic types can implement this trait\nproviding an ability to change first generic parameter.\nAssociated `Type` must have same HKT.\nThere are few laws:\n`<<X As Rebind1<T>::Type as Generic1>::Type == T`\n`<X As Rebind1<<X as Generic1>::Type>::Type == X`",null,null],[16,"Type","","",2,null],[8,"Generic2","","Generic types with at least two parameters can implement this trait\nproviding an ability to extract second generic parameter.",null,null],[16,"Type","","",3,null],[8,"Rebind2","","Generic types with at least two parameters can implement this trait\nproviding an ability to change second generic parameter.\nAssociated `Type` must have same HKT.\nThere are few laws:\n`<<X As Rebind2<T>::Type as Generic2>::Type == T`\n`<X As Rebind2<<X as Generic2>::Type>::Type == X`",null,null],[16,"Type","","",4,null],[8,"Functor","","Basic functional trait",null,null],[10,"fmap","","Apply function to value(s) in the functor producing new functor with same type",5,null],[8,"Monad","","Monad trait.\nCan you explain monads... in five words?",null,null],[10,"unit","","Wrap ordinary value into monadic value",6,null],[10,"bind","","Bind monadic value to the monadic action\n`m.bind(f)` is equvalent of `m.fmap(f).join()`",6,null],[11,"join","","Join two level of monad into one `M<M<T>> => M<T>`\n`m.join()` is equivalent of `m.bind(|x|x)`",6,null],[8,"BinaryOperation","","Define binary operation as type",null,null],[10,"apply","","",7,{"inputs":[{"name":"t"},{"name":"t"}],"output":{"name":"t"}}],[8,"AssociativeOperation","","Declare binary operation as associative",null,null],[8,"Magma","","Basic algebraic structure/\nCombines binary operation with type",null,null],[8,"Semigroup","","Combines asscotiative operation with type",null,null],[8,"Monoid","","Monoid is Semigroup with neutral element for is's operation",null,null],[10,"one","","Get the neutral element\nif `T: Monoid<Op>` and `r: T` then `Op::apply(T::one(), r) == r`",8,{"inputs":[],"output":{"name":"self"}}],[11,"apply","","",9,{"inputs":[{"name":"t"},{"name":"t"}],"output":{"name":"t"}}],[11,"apply","","",10,{"inputs":[{"name":"t"},{"name":"t"}],"output":{"name":"t"}}],[11,"apply","","",11,{"inputs":[{"name":"t"},{"name":"t"}],"output":{"name":"t"}}]],"paths":[[8,"Equals"],[8,"Generic1"],[8,"Rebind1"],[8,"Generic2"],[8,"Rebind2"],[8,"Functor"],[8,"Monad"],[8,"BinaryOperation"],[8,"Monoid"],[3,"Add"],[3,"Mul"],[3,"Concat"]]}; initSearch(searchIndex);