packages feed

language-ocaml-0.1.31: lib/Language/OCaml/PrettyPrinter/Variance.hs

{-# OPTIONS_GHC -fno-warn-orphans #-}

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE UndecidableInstances #-}

module Language.OCaml.PrettyPrinter.Variance
  ( variancePP
  ) where

import Data.Text.Prettyprint.Doc

import Language.OCaml.Definitions.Parsing.ASTTypes
import Language.OCaml.PrettyPrinter.ConstructorDeclaration ()
import Language.OCaml.PrettyPrinter.LabelDeclaration       ()

variancePP :: Variance -> Doc a
variancePP = \case
  Contravariant -> "-"
  Covariant     -> "+"
  Invariant     -> ""

instance Pretty Variance where
  pretty = variancePP