language-ocaml-0.1.31: lib/Language/OCaml/PrettyPrinter/ConstructorArguments.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
module Language.OCaml.PrettyPrinter.ConstructorArguments
( constructorArgumentsPP
) where
import Data.Text.Prettyprint.Doc
import Language.OCaml.Definitions.Parsing.ParseTree
import Language.OCaml.PrettyPrinter.CoreType ()
constructorArgumentsPP :: ConstructorArguments -> Doc a
constructorArgumentsPP = \case
PcstrTuple l -> case l of
[] -> ""
[x] -> fillSep [ "of", pretty x ]
_ -> fillSep [ "of", encloseSep "" "" " * " (map pretty l) ]
PcstrRecord _ -> error "TODO"
instance Pretty ConstructorArguments where
pretty = constructorArgumentsPP