úΕ ­    © 2018 Mark Karpov BSD 3 clause$Mark Karpov <markkarpov92@gmail.com> experimentalportableNone&'+-;=FQSTV] aThis helper type is used to build the phantom type holding types of the arguments applied to an  of a function. bs a is an image of a that is isomorphic to a and serializable. Create an  of a value with   instance. BintImprint :: Imprint 'Z Int intImprint = I.binary (static Dict) 4 Create an  of a value without   instance. wfunImprint :: Imprint 'Z (Int -> String -> String) funImprint = I.static (static f) where f n str = str ++ show nApply  of a value to an # of a function building a closure. eclosureImprint :: Imprint ('Z ':~> Int) (String -> String) closureImprint = funImprint <:> intImprint Restore a value from its .    44     &imprint-0.0.1.0-IasQKt6u233HvEKIYjrEAY Data.Imprint(constraints-0.9.1-3wheaBhcwam3U9ML5J0sWfData.ConstraintDictColZ:~>Imprintbinarystatic<:>restore$fBinaryImprint$fBinaryImprint0binary-0.8.5.1Data.Binary.ClassBinary BinaryImprint StaticImprint AppImprint