you could take the implicit Mode and FlowDef in the constructor, but leave as error for now. Not 100% sure scalar as a special case of Matrix is right. Makes the product a pain, as you notice.