So basically there is a type called Basic defined as follows

type Basic
    ptr::Ptr{Void}
    function Basic()
        z = new(C_NULL)
        ccall((:basic_new_stack, :libsymengine), Void, (Ptr{Basic}, ), &z)
        finalizer(z, basic_free)
        return z
    end
end

Now I want to create a hierarchy : integer(not Integer)< number(not Number) 
< Basic 

But in Julia, we cannot inherit from concrete type So what should I Do??

Here's My approach 

abstract Basic

type number <: Basic
    ptr::Ptr{Void}
    function number()
        z = new(C_NULL)
        ccall((:basic_new_stack, :libsymengine), Void, (Ptr{Basic}, ), &z)
        finalizer(z, basic_free)
        return z
    end
end 

abstract number

type integer <: number
    ptr::Ptr{Void}
    function integer()
        z = new(C_NULL)
        ccall((:basic_new_stack, :libsymengine), Void, (Ptr{Basic}, ), &z)
        finalizer(z, basic_free)
        return z
    end
end 


Please tell me if I am wrong ?
Need help from 

Reply via email to