getPos :: (Fold' Ghost IPoint -> Ghost -> Maybe IPoint) -> Getter' Ghost IPoint
getPos pick =
  to (fromMaybe . view position <*> pick (validExits . traverse))
getPos :: (Fold' Ghost IPoint -> Ghost -> Maybe IPoint) -> Getter' Ghost IPoint
getPos pick =
  to (fromMaybe . view position <*> pick (validExits . traverse))
getPos pick =
  to (fromMaybe . view position <*> pick (validExits . traverse))