No appropriate version of "UnityEngine.Instansiate" for the argument list"

Hi, I’ve used this instantiate method before in my game and has worked fine in the passed, for shooting and spawning enemies and building stuff.
'but now it dosn’t want to work,

basically whats supposed to happen is when you kill a fighter, spawn a GS object, and and explosion object at location of fighter.
#pragma strict

var Location : Transform;
var Location2 : Transform;
var GS : GameObject;
var explotion : GameObject;

function OnCollisionEnter (col : Collision)
{
    if(col.gameObject.name == "Fighter")
    {
   efects();
        Destroy(col.gameObject);
        GOLD.Gold   += 100;
              
            }
}






function efects () {
  Instantiate(SG,Location.transform.position , Location.transform.rotation);
                Instantiate(explotion,Location2.transform.position , Location2.transform.rotation);

}

GS on line 3, SG on line 23 - should be same?