diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for describe
 
+##0.4.0.5 -- 2020-02-07
+
+* Fixed `describeVia`
+
 ##0.4.0.4 -- 2020-02-07
 
 * Changed `describeVia` semantics
diff --git a/describe.cabal b/describe.cabal
--- a/describe.cabal
+++ b/describe.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                describe
-version:             0.4.0.4
+version:             0.4.0.5
 synopsis:            Combinators for describing binary data structures
 description:         Combinators for describing binary data structures, which eliminate the boilerplate of having to write isomorphic Get and Put instances. Please see the Github page for examples.
 homepage:            https://github.com/riugabachi/describe
diff --git a/src/Data/Serialize/Describe/Class.hs b/src/Data/Serialize/Describe/Class.hs
--- a/src/Data/Serialize/Describe/Class.hs
+++ b/src/Data/Serialize/Describe/Class.hs
@@ -51,7 +51,7 @@
   [d| 
     instance Describe $destination where
       type Context m $destination = Context m ($wrapper $destination)
-      describe = lmap coerce coerce describe
+      describe = dimap (coerce @($destination) @($wrapper $destination)) (coerce @($wrapper $destination) @($destination)) describe
   |]
   where
     wrapper = conT wrp
