  We propose efficient coding schemes for two communication settings: 1.
asymmetric channels, and 2. channels with an informed encoder. These settings
are important in non-volatile memories, as well as optical and broadcast
communication. The schemes are based on non-linear polar codes, and they build
on and improve recent work on these settings. In asymmetric channels, we tackle
the exponential storage requirement of previously known schemes, that resulted
from the use of large Boolean functions. We propose an improved scheme, that
achieves the capacity of asymmetric channels with polynomial computational
complexity and storage requirement.
  The proposed non-linear scheme is then generalized to the setting of channel
coding with an informed encoder, using a multicoding technique. We consider
specific instances of the scheme for flash memories, that incorporate
error-correction capabilities together with rewriting. Since the considered
codes are non-linear, they eliminate the requirement of previously known
schemes (called polar write-once-memory codes) for shared randomness between
the encoder and the decoder. Finally, we mention that the multicoding scheme is
also useful for broadcast communication in Marton's region, improving upon
previous schemes for this setting.
