(.module: [library [lux #* [abstract [functor (#+ Functor)] [apply (#+ Apply)] [monad (#+ Monad)] [comonad (#+ CoMonad)]] [control ["." function]]]]) (type: .public (Identity a) {#.doc (example "A value, as is, without any extra structure super-imposed on it.")} a) (implementation: .public functor (Functor Identity) (def: map function.identity)) (implementation: .public apply (Apply Identity) (def: &functor ..functor) (def: (apply ff fa) (ff fa))) (implementation: .public monad (Monad Identity) (def: &functor ..functor) (def: in function.identity) (def: join function.identity)) (implementation: .public comonad (CoMonad Identity) (def: &functor ..functor) (def: out function.identity) (def: split function.identity))