type # ports
PortKind = enum
Bool, Int, Float, String
PortType = concept c
(c is bool or
c is int or
c is float or
c is string)
NumericPort = concept c
c is PortType
c is int or c is float
type # parameters
Parameter[T: PortType] = object
name: string
value: T
when T is NumericPort:
minVal, maxVal: T
var p = Parameter[float](name:"freq", value:440.0, minVal:0.0, maxVal:20000.0)
echo repr p