Ok, thanks, I see now where I got confused.

There are two kinds of nodes: one kind of node is a pure source in the model, and the other kind of node expects (requires?) input to function properly. You cannot connect to the first kind of node, you can/should/must connect to the second type of node.

To me these feel like relatively different semantics, so that's why I was confused. Since both kinds of Node pass time as an input, I can see why calling one of them TimeNode would not help! I still think we can find a clearer and more-reliable way to distinguish the cases though than inspecting the function signature... there are lots of corner-cases there including several already raised on this thread, and relatedly, Python APIs rarely work that way.

I like the syntax you used just above:
```python
a = Node(np.sin)  # case 1: calls sin(t)
e = Ensemble(...)
b = Node(specific_logging, dimensions=101) # case 2
Connect(a, b[0])  # -- set up the switch in Node b
Connect(e.neurons, b[1:], transform=1)  # ... work with me here (!?)
```

Doesn't this syntax make argument-inspection un-necessary? If the dimensions parameter is specified, it means "set up a case 2 Node", otherwise it means to set up a simple "case 1" node.