Skip to content
  • Ivan Gromakovskii's avatar
    [TM-309] Move Lorentz code into a new package · 55db7077
    Ivan Gromakovskii authored
    Problem:
    Over time some `morley` package became bigger and it seems that now
    is a good time to draw some boundaries between its parts.
    The main reason is that if a package contains X and Y while someone
    needs only X, they will be forced to depend on Y as well.
    Also it makes dependencies inside this repo more explicit and clear.
    
    Solution: create `morley-lorentz` package and move Lorentz code
    there.
    I had to move some utility testing code used by Lorentz tests to
    `morley` lib or to `morley-lorentz` (if it is used only
    by `morley-lorentz`).
    Also I moved `tOriginate`, `tTransfer` and `tExpectStorageConst` to
    `Michelson.Test.Integrational` because they do not use anything
    from Lorentz.
    
    Some difficulties arose because some tests in `morley` use Lorentz.
    They were solved as follows:
    1. `Test.Integrational` was rewritten using Michelson.Typed instead of
    Lorentz.
    2. `Doc.hs` and `DocTest.hs` tests were moved to `morley-lorentz`
    because they are heavily based on Lorentz. Also `Lorentz.*` tests were
    moved there.
    3. `Test.Interpreter` was split into two `Test.Interpreter` modules
    (in different test-suites). In the next commit we will clean it up.
    
    Another notable change is movement of Arbitrary instances for UStore
    types into UStore.Types module. As a bonus it removed 2 orphan
    instances.
    55db7077