module Case where

-- TODO: test where, guards

f x = case x of
  Right (a,b,c) -> a b c
  Left 0 -> 0
  Left y
    | u -> u
    | let v = u, k <- v -> u
    where
      u = y
      q = v -- not in scope
  NB : ' a ' is intentionally unbound
    where
      t = y x

 TODO: test where, guards
 not in scope
module Case where


f x = case x of
  Right (a,b,c) -> a b c
  Left 0 -> 0
  Left y
    | u -> u
    | let v = u, k <- v -> u
    where
      u = y
  NB : ' a ' is intentionally unbound
    where
      t = y x
