public static Maybe <Position> FindMoveTarget(this Board board, Position position, Direction direction) => board[position].Match( number => board.FindMoveTarget(number, board.BuildPositionPairs(position, direction).ToArray()), () => Maybe <Position> .Nothing );