[[!comment format=mdwn username="joey" subject="""comment 9""" date="2016-06-02T21:07:10Z" content=""" @craige I do get an OOM with your config.hs. So, the first thing I tried was to delete several of the big blocks of `&` properties to simplify it. That led to some error messages, which didn't OOM ghc this time, but were still several pages long each. The main problem is that standardDesktop etc functions have not finished being ported to propellor 3.0. A minimalized example derived from your config is as follows: standardDesktop :: HostName -> DebianSuite -> Architecture -> Host standardDesktop hn suite arch motd = host hn & osDebian suite arch & Apt.unattendedUpgrades & Apt.cacheCleaned & Apt.installed ["etckeeper"] -- adding more properties here yields exponentially longer -- type inference errors That would have worked before propellor 3.0, but I had to remove support for adding additional properties into an existing Host using `&` like this. Also, in propellor 3.0, you have to use `props` when building a list of properties to assign to a host. See [[upgrading_to_propellor_3.0]]. The way I dealt with it in joeyconfig.hs is to make my standardSystem not be a function to generate a Host, but just a Property that combines together other properties and can be added to a Host like any other Property. I suggest you make similar changes to your config.hs to get it to compile. The fixed version of the above example becomes: standardDesktop :: DebianSuite -> Architecture -> Property (HasInfo + Debian) standardDesktop suite arch = propertyList "standard desktop" $ props & osDebian suite arch & Apt.unattendedUpgrades & Apt.cacheCleaned & Apt.installed ["etckeeper"] So in summary, in this case, the ghc OOM is due to a type inference error message, proabably quite an enourmous one as ghc chews on a bunch of properties that are being combined together, and tries to say that their type should be Property (HasInfo + Debian) and not Host, but says it in the most verbose way imaginable. (I don't think the type checker is blowing up, because ghc is able to get to the point of saying "Couldn't match expected" before it blows up .. the type checker has found a problem and the error message is being lazily generated.) It may be that the super-long error message could be improved by [[todo/use_ghc_8.0_custom_compile_errors]], although I believe that ghc still displays the full type error message after the custom error message. ghc is printing out each application of the Propellor.Types.MetaTypes.Intersect type-level function, along with all its inputs. I wonder if there's a way to "force" application of a type-level function so the error message only shows its value? (It certianly seems a bug that ghc can eat all memory to display totally enormous type errror messages.) (Also @craige, you need to submit some of those modules to include in propellor. How can propellor be complete w/o MineCraft support?) """]]