naiveMul name =
    let muls (Num a) (Num b) = Num $ a * b
        muls _       _       = numError

    in  functionFactory name numId (reduceFn muls (Num 1))
naiveMul name =
    let muls (Num a) (Num b) = Num $ a * b
        muls _       _       = numError

    in  functionFactory name numId (reduceFn muls (Num 1))
naiveMul name =
    let muls (Num a) (Num b) = Num $ a * b
        muls _       _       = numError

    in  functionFactory name numId (reduceFn muls (Num 1))