anchor.diff: -{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, coreutils
  -, runCommand, runtimeShell, writeText, terraform-providers, fetchpatch }:
  +{ stdenv
  +, lib
  +, buildGoModule
  +, fetchFromGitHub
  +, makeWrapper
  +, coreutils
  +, runCommand
  +, runtimeShell
  +, writeText
  +, terraform-providers
  +, fetchpatch
  +}:
   
   let
     generic = { version, sha256, vendorSha256 ? null, ... }@attrs:
       let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "vendorSha256" ];
  -    in buildGoModule ({
  +    in
  +    buildGoModule ({
         name = "terraform-${version}";
   
         inherit vendorSha256;
  
positive.code:           };
            # Don't bother wrapping unless we actually have plugins, since the wrapper will stop automatic downloading
            # of plugins, which might be counterintuitive if someone just wants a vanilla Terraform.
          in if actualPlugins == [ ] then
            terraform.overrideAttrs
            (orig: { passthru = orig.passthru // passthru; })
          else
            lib.appendToName "with-plugins" (stdenv.mkDerivation {
              inherit (terraform) name meta;
  
negative.code: 
              inherit passthru;
            });
      in
      withPlugins (_: [ ]);
  
    plugins = removeAttrs terraform-providers [
      "override"
      "overrideDerivation"
      "recurseForDerivations"
    ];
  in
  rec {
    terraform_0_12 = pluggable (generic {
      version = "0.12.31";
      sha256 = "03p698xdbk5gj0f9v8v1fpd74zng3948dyy4f2hv7zgks9hid7fg";
      patches = [
        ./provider-path.patch
        (fetchpatch {
          name = "fix-mac-mojave-crashes.patch";
          url = "https://github.com/hashicorp/terraform/commit/cd65b28da051174a13ac76e54b7bb95d3051255c.patch";
          sha256 = "1k70kk4hli72x8gza6fy3vpckdm3sf881w61fmssrah3hgmfmbrs";
        })
      ];
      passthru = { inherit plugins; };
    });
  
  