checkAnimal("Dog").match( (animal) => { return c.json({ message: animal }); }, (error) => { switch (error.kind) { case "DogError": return c.json({ error: `DogError: ${error.message}` }, 401); case "CatError": return c.json({ error: `CatError: ${error.message}` }, 400); default: return assertNever(error); } } ); });