Custom Inspector for Singleton not working as expected

I’m having some confusion about tying a custom inspector to a singleton-ish script. When I attach the script below to a GameObject, in the inspector I can see and manipulate the prefabList variable. I figure since I can edit prefabList in the default inspector, a PoolManagerEditor’s target will expose the prefabList variable properly, right? Nope!

Sadly, I’m quite stumped. I can’t readily identify what the PoolManagerEditor’s target actually is, likely owing to my confusion about how this singleton-like pattern behaves internally. Can anyone clue me in on how I may access this prefabList var from a custom inspector? A teeny explanation of why it doesn’t “just work” might go a long way, too!

Thanks,

public class PoolManager : MonoBehaviour {
    private static PoolManager s_Instance = null;
    public static PoolManager instance {
        get {
            // if null, find script on object in scene,
            // if still null, create object with script and set to s_Instance
            return s_Instance;
        }
    }       
 
    public List<GameObject> prefabList;    
}

Well, I’m guessing the comments in your code are normally replaced with code, right? Otherwise your static variable which is supposed to hold the singleton object is always null.

Indeed, that’s all coded. This sample was condensed to the bits essential to illustrating the problem. In the future I’ll clarify any time I do such a thing, as it’s a fair point.

Edit:
I discovered the reason it wasn’t working as expected: A typo in the Editor extension class. Find And Replace In Files is dangerous business. Case closed, many pardons. As a peace offering for anyone who finds this later, I’ll post the bones of this singleton editor.

Singleton class:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class PoolManager : MonoBehaviour {
    private static PoolManager s_Instance = null;
     public static PoolManager instance {
        get {
            if (s_Instance == null) {
                s_Instance =  FindObjectOfType(typeof (PoolManager)) as PoolManager;
            }           
            if (s_Instance == null) {
                GameObject obj = new GameObject("_PoolManager");
                s_Instance = obj.AddComponent(typeof (PoolManager)) as PoolManager;
            }           
            return s_Instance;
        }
    }  
       
    public List<GameObject> prefabList;    
}

Custom inspector:

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(PoolManager))]
public class PoolManagerEditor : Editor {
    public override void OnInspectorGUI() {
        PoolManager pm = target as PoolManager;
        EditorGUILayout.HelpBox(pm.prefabList.Count.ToString(), MessageType.Info);
    }
}