--
--
-- Maybe (Option)
--
--

maybe a :=
  matcher
    | nothing as () with
      | Nothing -> [()]
      | _ -> []
    | just $ as (a) with
      | Just $x -> [x]
      | _ -> []
    | $ as (something) with
      | $tgt -> [tgt]
