Instantiate as a child properly

So I found need to Instantiate a prefab as a child of object, but i’m not sure how it is done and I am always getting an error:

NullReferenceException: Object
reference not set to an instance of an
object Player_Statistics.Update () (at
Assets/Scripts/Player_Statistics.cs:23)

Evolved form of Base_Player is created, but it is not a child of “Player”.
The script I have:

using UnityEngine;
using System.Collections;

public class Player_Statistics : MonoBehaviour {

	public static int evolution_points;
	public int level;
	public Rigidbody2D evolution;

	// Use this for initialization
	void Start () {
		evolution_points = 0;
		level = 0;
	}
	void Update (){
		if (evolution_points >= 5) {
			evolution_points = 0;
			Debug.Log ("Level up!");
			foreach (Transform child in transform) {
				GameObject.Destroy (child.gameObject);//destroy all childs
				//creates evolved form of player at the same hierarhy possition
				Transform evolved_player = Instantiate(evolution, child.position, child.rotation) as Transform;
				evolved_player.parent = gameObject.transform;
				return;
				 }
		}
	}
}

Before playing game I have:

Please do not hesitate to give any tips, thanks in advance.

There are a couple issues. Prefab references should be of type GameObject. Change the evolution field to that

public GameObject evolution;

You need to then cast it to GameObject when you instantiate it.

GameObject evolved_player = Instantiate(evolution, child.position, child.rotation) as GameObject;
evolved_player.transform.parent = transform;