nSVM :: [(Double, V.Vector Double)] -> IO SVM
trainSVM dataSet = do
    pf <- wrapPrintF (\cstr -> peekCString cstr >>= print . (, ":HS"))
    c'svm_set_print_string_function pf
    modelPtr <- withProblem dataSet $ \ptr_problem ->
                with dummyParameters $ \ptr_parameters ->
                    c'svm_train ptr_problem ptr_parameters
    SVM <$> C.newForeignPtr modelPtr (modelFinalizer modelPtr) 

ma
trainSVM :: [(Double, V.Vector Double)] -> IO SVM
trainSVM dataSet = do
    pf <- wrapPrintF (\cstr -> peekCString cstr >>= print . (, ":HS"))
    c'svm_set_print_string_function pf
    modelPtr <- withProblem dataSet $ \ptr_problem ->
                with dummyParameters $ \ptr_parameters ->
                    c'svm_train ptr_problem ptr_parameters
    SVM <$> C.newForeignPtr modelPtr (modelFinalizer modelPtr) 
trainSVM dataSet = do
    pf <- wrapPrintF (\cstr -> peekCString cstr >>= print . (, ":HS"))
    c'svm_set_print_string_function pf
    modelPtr <- withProblem dataSet $ \ptr_problem ->
                with dummyParameters $ \ptr_parameters ->
                    c'svm_train ptr_problem ptr_parameters
    SVM <$> C.newForeignPtr modelPtr (modelFinalizer modelPtr) 