touchedPoint :: PrimMonad m => Canvas (PrimState m) -> P2 -> m Bool
touchedPoint canvas n = do
    (_,_,touched) <- UM.read canvas $ index n
    if touched then return True else return False
touchedPoint :: PrimMonad m => Canvas (PrimState m) -> P2 -> m Bool
touchedPoint canvas n = do
    (_,_,touched) <- UM.read canvas $ index n
    if touched then return True else return False
touchedPoint canvas n = do
    (_,_,touched) <- UM.read canvas $ index n
    if touched then return True else return False