showField qi qs (SequelSymbol tableName) (SequelField t name@(SequelSymbol nme) def nul pk ai uni fk) =
    showExpr qi qs name `mappend`
    " " `mappend`
    showType qi qs t `mappend`
    showNull nul `mappend`
    showDefault qi qs def `mappend`
    showAutoIncrement ai `mappend`
    showPrimaryKey pk `mappend`
    if uni then " UNIQUE " else "" `mappend`
    case fk of
      Nothing -> ""
      Just (SequelSymbolOperation Access tabS@(SequelSymbol tab)  colS@(SequelSymbol col)) ->
        ", CONSTRAINT " `mappend` showExpr qi qs (SequelSymbol $ "fk_" `mappend` tableName `mappend` "_" `mappend` nme) `mappend`
          " FOREIGN KEY(" `mappend` showExpr qi qs name `mappend` ") " `mappend`
          " REFERENCES " `mappend` showExpr qi qs tabS `mappend` "(" `mappend` showExpr qi qs colS `mappend` ")"
showField qi qs (SequelSymbol tableName) (SequelField t name@(SequelSymbol nme) def nul pk ai uni fk) =
    showExpr qi qs name `mappend`
    " " `mappend`
    showType qi qs t `mappend`
    showNull nul `mappend`
    showDefault qi qs def `mappend`
    showAutoIncrement ai `mappend`
    showPrimaryKey pk `mappend`
    if uni then " UNIQUE " else "" `mappend`
    case fk of
      Nothing -> ""
      Just (SequelSymbolOperation Access tabS@(SequelSymbol tab)  colS@(SequelSymbol col)) ->
        ", CONSTRAINT " `mappend` showExpr qi qs (SequelSymbol $ "fk_" `mappend` tableName `mappend` "_" `mappend` nme) `mappend`
          " FOREIGN KEY(" `mappend` showExpr qi qs name `mappend` ") " `mappend`
          " REFERENCES " `mappend` showExpr qi qs tabS `mappend` "(" `mappend` showExpr qi qs colS `mappend` ")"
showField qi qs (SequelSymbol tableName) (SequelField t name@(SequelSymbol nme) def nul pk ai uni fk) =
    showExpr qi qs name `mappend`
    " " `mappend`
    showType qi qs t `mappend`
    showNull nul `mappend`
    showDefault qi qs def `mappend`
    showAutoIncrement ai `mappend`
    showPrimaryKey pk `mappend`
    if uni then " UNIQUE " else "" `mappend`
    case fk of
      Nothing -> ""
      Just (SequelSymbolOperation Access tabS@(SequelSymbol tab)  colS@(SequelSymbol col)) ->
        ", CONSTRAINT " `mappend` showExpr qi qs (SequelSymbol $ "fk_" `mappend` tableName `mappend` "_" `mappend` nme) `mappend`
          " FOREIGN KEY(" `mappend` showExpr qi qs name `mappend` ") " `mappend`
          " REFERENCES " `mappend` showExpr qi qs tabS `mappend` "(" `mappend` showExpr qi qs colS `mappend` ")"