extractModuleName :: String -> Maybe String
extractModuleName link = do
  let pieces = split "/" link
  guard $ not $ null pieces
  let html = fromJust $ lastMay pieces
      mod = replace "-" "." $ takeWhile (/= '.') html
  return mod
extractModuleName :: String -> Maybe String
extractModuleName link = do
  let pieces = split "/" link
  guard $ not $ null pieces
  let html = fromJust $ lastMay pieces
      mod = replace "-" "." $ takeWhile (/= '.') html
  return mod
extractModuleName link = do
  let pieces = split "/" link
  guard $ not $ null pieces
  let html = fromJust $ lastMay pieces
      mod = replace "-" "." $ takeWhile (/= '.') html
  return mod