Dear Isaiah, Thanks, this has all really helped. Is the use of an array here:
retInfo = [BeagleInstanceDetails(0,0,0,0,0)] a way round converting things to pointers? I had initial problems as I defined retInfo = BeagleInstanceDetails(0,0,0,0,0) and didn't know how to convert it. Also, is there any reason that resourceNumber::Int should be rather than resourceNumber::Cint? I've wrapped the complete example, but the last function call ccall((:beagleCalculateRootLogLikelihoods, "libhmsbeagle"), Int, (Cint,Ptr{Cint},Ptr{Cint},Ptr{Cint},Ptr{Cint},Cint,Ptr{Cdouble}), instance,rootIndex,categoryWeightIndex,stateFrequencyIndex,cumulativeScaleIndex,1,logL) kills my IJulia kernel...are there any good ways to debug the external C calls? Best Simon