fullAnnotation :: Fold (Binding (Annot k t) a) (Type k t)
fullAnnotation = folding $ \case
  Binding (Explicit (Annot [] [] sc)) _ ->
    Just . instantiateKinds (imposs "kind") . instantiate (imposs "type") $ sc
  _ -> Nothing
 where imposs s = error $ "fullAnnotation: dangling " ++ s
fullAnnotation :: Fold (Binding (Annot k t) a) (Type k t)
fullAnnotation = folding $ \case
  Binding (Explicit (Annot [] [] sc)) _ ->
    Just . instantiateKinds (imposs "kind") . instantiate (imposs "type") $ sc
  _ -> Nothing
 where imposs s = error $ "fullAnnotation: dangling " ++ s
fullAnnotation = folding $ \case
  Binding (Explicit (Annot [] [] sc)) _ ->
    Just . instantiateKinds (imposs "kind") . instantiate (imposs "type") $ sc
  _ -> Nothing
 where imposs s = error $ "fullAnnotation: dangling " ++ s