diff --git a/go/src/go.gleam b/go/src/go.gleam index 2f783d7..19678b1 100644 --- a/go/src/go.gleam +++ b/go/src/go.gleam @@ -21,12 +21,19 @@ pub fn apply_rules( rule3: fn(Game) -> Result(Game, String), rule4: fn(Game) -> Result(Game, String), ) -> Game { - case rule2(game) |> rule1 |> result.try(rule3) |> result.try(rule4) { - Error(err) -> Game(..game, error: err) - Ok(g) -> - case g.player { - Black -> Game(..g, player: White) - White -> Game(..g, player: Black) - } + game + |> rule1 + |> result.map(rule2) + |> result.try(rule3) + |> result.try(rule4) + |> fn(result) { + case result { + Error(err) -> Game(..game, error: err) + Ok(g) -> + case g.player { + Black -> Game(..g, player: White) + White -> Game(..g, player: Black) + } + } } }