public protocol RNNCell: Layer
    where Input == RNNCellInput<TimeStepInput, State>, 
          Output == RNNCellOutput<TimeStepOutput, State>

A recurrent neural network cell.