diff --git a/src/Core/Syntax.hs b/src/Core/Syntax.hs index 9cb25d7..ae16db0 100644 --- a/src/Core/Syntax.hs +++ b/src/Core/Syntax.hs @@ -253,8 +253,10 @@ instance Pretty Type where prettyPrec _ (TyVar n) = ttext n prettyPrec _ TyFun = "(->)" prettyPrec _ (TyCon n) = ttext n - prettyPrec p (TyApp f x) = maybeParens (p>0) $ - prettyPrec 0 f <+> prettyPrec 1 x + prettyPrec p (a :-> b) = maybeParens (p>0) $ + hsep [prettyPrec 1 a, "->", prettyPrec 0 b] + prettyPrec p (TyApp f x) = maybeParens (p>1) $ + prettyPrec 1 f <+> prettyPrec 2 x instance (Pretty b) => Pretty (ScDef b) where pretty sc = hsep [name, as, "=", hang empty 1 e, ";"] diff --git a/src/Rlp/Parse.y b/src/Rlp/Parse.y index 6f8aeb2..d8c0ff4 100644 --- a/src/Rlp/Parse.y +++ b/src/Rlp/Parse.y @@ -90,10 +90,9 @@ Decls : Decl ';' Decls { $1 : $3 } | Decl { [$1] } DeclsV :: { [Decl' RlpcPs] } -DeclsV : Decl VS Decls { $1 : $3 } +DeclsV : Decl VS DeclsV { $1 : $3 } | Decl VS { [$1] } | Decl { [$1] } - | {- epsilon -} { [] } VS :: { Located RlpToken } VS : ';' { $1 }