diff --git a/src/Language/Syntactic/Sugar.hs b/src/Language/Syntactic/Sugar.hs
--- a/src/Language/Syntactic/Sugar.hs
+++ b/src/Language/Syntactic/Sugar.hs
@@ -42,6 +42,13 @@
     desugar = id
     sugar   = id
 
+instance Syntactic (ASTFull sym a)
+  where
+    type Domain (ASTFull sym a)   = sym
+    type Internal (ASTFull sym a) = a
+    desugar = unASTFull
+    sugar   = ASTFull
+
 -- | Syntactic type casting
 resugar :: (Syntactic a, Syntactic b, Domain a ~ Domain b, Internal a ~ Internal b) => a -> b
 resugar = sugar . desugar
diff --git a/src/Language/Syntactic/Syntax.hs b/src/Language/Syntactic/Syntax.hs
--- a/src/Language/Syntactic/Syntax.hs
+++ b/src/Language/Syntactic/Syntax.hs
@@ -20,6 +20,7 @@
     ( -- * Syntax trees
       AST (..)
     , ASTF
+    , ASTFull (..)
     , Full (..)
     , (:->) (..)
     , SigRep (..)
@@ -87,6 +88,12 @@
 
 -- | Fully applied abstract syntax tree
 type ASTF sym a = AST sym (Full a)
+
+-- | Fully applied abstract syntax tree
+--
+-- This type is like 'AST', but being a newtype, it is a proper type constructor
+-- that can be partially applied.
+newtype ASTFull sym a = ASTFull {unASTFull :: ASTF sym a}
 
 instance Functor sym => Functor (AST sym)
   where
diff --git a/syntactic.cabal b/syntactic.cabal
--- a/syntactic.cabal
+++ b/syntactic.cabal
@@ -1,5 +1,5 @@
 Name:           syntactic
-Version:        3.2
+Version:        3.2.1
 Synopsis:       Generic representation and manipulation of abstract syntax
 Description:    The library provides a generic representation of type-indexed abstract syntax trees
                 (or indexed data types in general). It also permits the definition of open syntax
