Use type alias CLRet a = IO (Either CLError a)
Add createProgramFromsource
Add createProgramFromBinary