Original post

I want to create a Stack interface, and then 2 implementations of it: StackImpl and StackConcurrentImpl (the second one is safe for concurrent usage).

Any idea on naming ? Should I create two packages, stack & concurrentStack, and inside each have a Stack interface with an Impl structure that implements it ?

What is the idiomatic way of naming the interfaceand struct that implements it ?