joeyh

something to think about

joeyh at

Root canal in 2 hours. Maybe I'll find moments where I am able to chew on a tricky change to propellor's types.

I've gotten ghc's type checker to generate an awesome error message like this when it detects conflicting port resources. Just need to find a way to integrate this with propellor's already complicated Property types.

Couldn't match type ‘'Propellor.Resources.Conflicting’
              with ‘'Propellor.Resources.NonConflicting’
Expected type: 'Propellor.Resources.NonConflicting
  Actual type: Propellor.Resources.Conflict
                 (Propellor.Resources.UniqueList '['Port 443, 'Port 80, 'Port 443])

(Or maybe I'll just think about buddism. Life is pain.)