propellor 2.13.0 released with [[!toggle text="these changes"]]
[[!toggleable text="""
   * RevertableProperty used to be assumed to contain info, but this is
     now made explicit, with RevertableProperty HasInfo or
     RevertableProperty NoInfo. (API change)
     Transition guide:
       - If you define a RevertableProperty, expect some type check
         failures like: "Expecting one more argument to ‘RevertableProperty’".
       - Change it to "RevertableProperty NoInfo"
       - The compiler will then tell you if it needs "HasInfo" instead.
       - If you have code that uses the RevertableProperty constructor
         that fails to type check, use the more powerful &lt;!&gt; operator
         instead to create the RevertableProperty.
   * Various property combinators that combined a RevertableProperty
     with a non-revertable property used to yield a RevertableProperty.
     This was a bug, because the combined property could not be fully
     reverted in many cases, and the result is now a non-revertable property.
   * combineWith now takes an additional parameter to control how revert
     actions are combined (API change).
   * Added Propellor.Property.Concurrent for concurrent properties.
   * Made the execProcess exported by propellor, and everything built on it,
     avoid scrambled output when run concurrently.
   * Propellor now depends on STM and text.
   * The cabal file now builds propellor with -O. While -O0 makes ghc
     take less memory while building propellor, it can lead to bad memory
     usage at runtime due to eg, disabled stream fusion.
   * Add File.isCopyOf. Thanks, Per Olofsson."""]]