intuitionisticStyle, intuitionisticStyleUpper, intuitionisticStyleLower :: P.LanguageDef st
intuitionisticStyle = emptyDef
                { P.commentStart    = "(*"
                , P.commentEnd      = "*)"
                , P.nestedComments  = True
                , P.identStart      = letter <|> oneOf "_"
                , P.identLetter     = alphaNum <|> oneOf "_'"
                -- Ops are sloppy, but should work OK for our use case.
                , P.opStart         = P.opLetter intuitionisticStyle
                , P.opLetter        = oneOf ":!#$%&*+./<=>?@\\^|-~,"
                , P.reservedOpNames =
                    ["(",")",".",",",";",
                    "->", "→",
                    "<->", "↔", "<=>",
                    "/\\","∧",
                    "\\/","∨",
                    "|-","⊢",
                    "~","¬"]
                , P.reservedNames   =
                    [
                    "True","False","⊤","⊥",
                    "and", "or", "ex", "iff", "not"
                    ]
                , P.caseSensitive   = True
                }
intuitionistic
intuitionisticStyle, intuitionisticStyleUpper, intuitionisticStyleLower :: P.LanguageDef st
intuitionisticStyle = emptyDef
                { P.commentStart    = "(*"
                , P.commentEnd      = "*)"
                , P.nestedComments  = True
                , P.identStart      = letter <|> oneOf "_"
                , P.identLetter     = alphaNum <|> oneOf "_'"
                -- Ops are sloppy, but should work OK for our use case.
                , P.opStart         = P.opLetter intuitionisticStyle
                , P.opLetter        = oneOf ":!#$%&*+./<=>?@\\^|-~,"
                , P.reservedOpNames =
                    ["(",")",".",",",";",
                    "->", "→",
                    "<->", "↔", "<=>",
                    "/\\","∧",
                    "\\/","∨",
                    "|-","⊢",
                    "~","¬"]
                , P.reservedNames   =
                    [
                    "True","False","⊤","⊥",
                    "and", "or", "ex", "iff", "not"
                    ]
                , P.caseSensitive   = True
                }
intuitionisticStyle = emptyDef
                { P.commentStart    = "(*"
                , P.commentEnd      = "*)"
                , P.nestedComments  = True
                , P.identStart      = letter <|> oneOf "_"
                , P.identLetter     = alphaNum <|> oneOf "_'"
                -- Ops are sloppy, but should work OK for our use case.
                , P.opStart         = P.opLetter intuitionisticStyle
                , P.opLetter        = oneOf ":!#$%&*+./<=>?@\\^|-~,"
                , P.reservedOpNames =
                    ["(",")",".",",",";",
                    "->", "→",
                    "<->", "↔", "<=>",
                    "/\\","∧",
                    "\\/","∨",
                    "|-","⊢",
                    "~","¬"]
                , P.reservedNames   =
                    [
                    "True","False","⊤","⊥",
                    "and", "or", "ex", "iff", "not"
                    ]
                , P.caseSensitive   = True
                }