{-# LANGUAGE ScopedTypeVariables #-}

module Axel.Haskell.Prettify where

import Language.Haskell.Exts.Parser (ParseResult(ParseFailed, ParseOk), parse)
import Language.Haskell.Exts.Pretty (prettyPrint)
import Language.Haskell.Exts.SrcLoc (SrcSpanInfo)
import Language.Haskell.Exts.Syntax (Module)

prettifyHaskell :: String -> String
prettifyHaskell input =
  case parse input of
    ParseOk (ast :: Module SrcSpanInfo) -> prettyPrint ast
    ParseFailed _ _ -> input