Clones this encoder to create a new one with a different encoding function.
Clones this encoder to create a new one with a different encoding function.
This is not meant to be called directly. If you feel you need to, you're probably looking for contramap.
Encodes the specified value.
Creates a new Encoder instances that applies the specified function before encoding.
Parent trait for all type classes used to encode types.
encoded type - what to encode to.
decoded type - what to encode from.
implementation type - what will be returned by contramap.