anchor.diff:              artifact :: artifacts
           else artifacts
   
  +    and evalComposite viewType slice aspects time =
  +        evalAspects viewType slice aspects time |> snd
  +
       and evalContent viewType slice content time =
           match content with
           | ExpandContent _ ->
  
positive.code:         | Left error -> (Some error, [])
  
      let empty =
          { EffectName = "Empty"
            Playback = Once
            Lifetime = 0L
            Definitions = Map.empty
  
negative.code:         | PhysicsShape (label, bodyShape, collisionCategories, collisionMask, aspects) ->
              ignore (label, bodyShape, collisionCategories, collisionMask, aspects); failwith "TODO"
          | Composite aspects ->
              evalComposite viewType slice aspects time
  
      let eval viewType position size rotation depth color (globalEnv : Definitions) (effect : Effect) (time : int64) : string option * EffectArtifect list =
          let localTime = time % effect.Lifetime
  