setAttachedShaders :: Program -> ([VertexShader],[FragmentShader]) -> IO ()setAttachedShaders p@(Program program) (vs, fs) = docurrentIDs <- getAttachedShaderIDs plet newIDs = map shaderID vs ++ map shaderID fsmapM_ (glAttachShader program) (newIDs \\ currentIDs)mapM_ (glDetachShader program) (currentIDs \\ newIDs)