{ sources ? import ../nix/sources.nix
}:
(self: super:
  let pkgs = self; in
  {
    haskell = super.haskell // {
      packageOverrides = pkgs.lib.composeManyExtensions [
        super.haskell.packageOverrides
        (self: super: {
          acms = self.callCabal2nix "acms" ../acms { };
          astore = self.callCabal2nix "astore" sources.json2sql { };
          autotypes = self.callCabal2nix "autotypes" ../autotypes { };
          frontend = self.callCabal2nix "frontend" ../frontend { };
          sh = pkgs.haskell.lib.dontCheck (self.callCabal2nix "sh" sources.sh { });
          websockets = pkgs.haskell.lib.doJailbreak super.websockets;
        })
      ];
    };
  })