         case F:             return 96
         case FF:            return 112
         case FFF:           return 127
+        case Soft:          return 64
+        case Hard:          return 127
         case let Number(v): return v
         }
     }

    case (.F,       .F):                 return true
    case (.FF,      .FF):                return true
    case (.FFF,     .FFF):               return true
    case let (.Number (l), .Number (r)): return l == r
    default:                             return false
    }

    case F
    case FF
    case FFF
    case Soft
    case Hard
    case Number(Int)

    var numerical: Int {
